① redis數據類型有哪些
redis相對來說很強,讀取速度非常快,支持很多數據類型,字元串,列表,集合,有序集合等
② redis里的基本數據類型有幾種
1、set:設置key對應的值為string類型的value。
>set "name" "hello"
2、setnx(set if not exists):將key設置值為value,如果key不存在,這種情況下等同set命名;當key值存在,什麼也不做。
>setnx "name" "hello"
3、setex:設置key對應字元串value,並且設置key在給定的seconds時間之後超時過期。
>setex "color" 10 "red"
>get "color" --- red
③ Redis存儲格式
redis目前提供四種數據類型:string,list,set及zset(sorted set)。
redis使用了兩種文件格式:全量數據和增量請求。全量數據格式是把內存中的數據寫入磁碟,便於下次讀取文件進行載入;增量請求文件則是把內存中的數據序列化為操作請求,用於讀取文件進行replay得到數據,序列化的操作包括SET、RPUSH、SADD、ZADD。redis的存儲分為內存存儲、磁碟存儲和log文件三部分,配置文件中有三個參數對其進行配置。save seconds updates,save配置,指出在多長時間內,有多少次更新操作,就將數據同步到數據文件。這個可以多個條件配合,比如默認配置文件中的設置,就設置了三個條件。appendonly yes/no ,appendonly配置,指出是否在每次更新操作後進行日誌記錄,如果不開啟,可能會在斷電時導致一段時間內的數據丟失。因為redis本身同步數據文件是按上面的save條件來同步的,所以有的數據會在一段時間內只存在於內存中。appendfsync no/always/everysec ,appendfsync配置,no表示等操作系統進行數據緩存同步到磁碟,always表示每次更新操作後手動調用fsync()將數據寫到磁碟,everysec表示每秒同步一次。
④ redis可以存儲哪些數據類型
5種,
字元串
散列
集合
有序集合
列表
基本就這些
⑤ redis支持的數據類型有哪些
Redis支持五種數據類型:string(字元串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
string 是 redis 最基本的類型,可以理解成與 Memcached 一模一樣的類型,一個 key 對應一個 value。string 類型是二進制安全的。意思是 redis 的 string 可以包含任何數據。比如jpg圖片或者序列化的對象,string 類型的值最大能存儲 512MB。
(5)redis存儲類型擴展閱讀:
Redis hash是一個 string 類型的 field 和 value 的映射表,hash 特別適合用於存儲對象。
Redis list是簡單的字元串列表,按照插入順序排序。可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)。
Redis的Set是string類型的無序集合,集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。
Redis zset 和 set 一樣也是string類型元素的集合,且不允許重復的成員,不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。
zset的成員是唯一的,但分數(score)卻可以重復。
⑥ Redis支持幾種數據類型
Redis支持五種數據類型:string(字元串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
意思是 redis 的 string 可以包含任何數據。比如jpg圖片或者序列化的對象,string 類型的值最大能存儲 512MB。
Redis hash是一個 string 類型的 field 和 value 的映射表,hash 特別適合用於存儲對象。
Redis list是簡單的字元串列表,按照插入順序排序。可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)。
Redis的Set是string類型的無序集合,集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。
Redis zset 和 set 一樣也是string類型元素的集合,且不允許重復的成員,不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。
⑦ 列表數據 redis用什麼類型
1.strings(字元串)
a)如果只使用redis中的字元串類型,且不使用redis的持久化功能,那麼,redis就和memcache非常非常的像了;
b)在遇到數值操作時,會自動轉換過為字元串,如寫入數字1,讀出來將是字元串1;
c)本身具有原子性的指令:incr、decr和Memecached中increment、decrement類似;
d)應用場景:常規計數-微博數,粉絲數;
2.lists(列表)
a)lists數據類型的實現不是數組而是通過鏈表這種數據結構實現;
b)使用Lists結構,我們可以輕松地實現最新消息排行等功能。Lists的另一個應用就是消息隊列,可以利用Lists的PUSH操作,將任務存在Lists中,然後工作線程再用POP操作將任務取出進行執行;
c)每個子元素都是String類型的雙向鏈表,可以通過push和pop操作從列表的頭部或者尾部添加或者刪除元素,這樣List即可以作為棧,也可以作為隊列;
3.sets(無序集合)
a)所謂集合就是一堆不重復值的組合,並且是沒有順序的;
b)在微博應用中,可以將一個用戶所有的關注人存在一個集合中,將其所有粉絲存在一個集合。Redis還為集合提供了求交集、並集、差集等操作,可以非常方便的實現如共同關注、共同喜好、二度好友等功能,對上面的所有集合操作,你還可以使用不同的命令選擇將結果返回給客戶端還是存集到一個新的集合中。
4.sorted sets(有序集合)
a)和Sets相比,Sorted Sets增加了一個權重參數score,使得集合中的元素能夠按score進行有序排列;
b)比如一個存儲全班同學成績的Sorted Sets,其集合value可以是同學的學號,而score就可以是其考試得分,這樣在數據插入集合的時候,就已經進行了天然的排序。可以用Sorted Sets來做帶權重的隊列,比如普通消息的score為1,重要消息的score為2,然後工作線程可以選擇按score的倒序來獲取工作任務。讓重要的任務優先執行。
c)應用場景:在線游戲的排行榜,根據得分你通常想要:
i.列出前100名高分選手
ii.列出某用戶當前的全球排名
5.hashes(哈希)
a)在Memcached中,我們經常將一些結構化的信息打包成hashmap,在客戶端序列化後存儲為一個字元串的值,比如用戶的昵稱、年齡、性別、積分等,這時候在需要修改其中某一項時,通常需要將所有值取出反序列化後,修改某一項的值,再序列化存儲回去。這樣不僅增大了開銷,也不適用於一些可能並發操作的場合(比如兩個並發的操作都需要修改積分)。而Redis的Hash結構可以使你像在資料庫中Update一個屬性一樣只修改某一項屬性值。
b)應用場景:存儲部分變更數據,如用戶信息,session共享;
⑧ redis數據類型是什麼
一、string
string 是 redis 最基本的類型,你可以理解成與 Memcached 一模一樣的類型,一個 key 對應一個 value。
string 類型是二進制安全的。意思是 redis 的 string 可以包含任何數據。比如jpg圖片或者序列化的對象。
string 類型是 Redis 最基本的數據類型,string 類型的值最大能存儲 512MB。
命令: SET 和 GET 命令
二、hash
Redis hash 是一個鍵值(key=>value)對集合。
Redis hash 是一個 string 類型的 field 和 value 的映射表,hash 特別適合用於存儲對象。
HMSET, HGET 命令,HMSET 設置了兩個 field=>value 對, HGET 獲取對應 field 對應的 value。
三、list
列表是簡單的字元串列表,按照插入順序排序。可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)。
列表最多可存儲 232 - 1 元素 (4294967295,每個列表可存儲40多億)。
lpush 設置值,lrange取值
四、set
redis的set是string的無序集合。集合通過哈希表實現。
添加一個string元素到key對應的set集合中,用 sadd命令。返回1表示成功,0表示在集合中已存在,返回錯誤表示key對應的set不存在。
查看用smembers 命令
集合內元素的唯一性,第二次插入的元素將被忽略。
集合中最大的成員數為 232 - 1(4294967295, 每個集合可存儲40多億個成員)。
五、zset
redis的zset 和 set 一樣也是string類型元素的集合,且不允許重復的成員。
不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重復。
添加元素到集合,元素在集合中存在則更新對應score:zadd key score member。
Redis數據模型
Redis的外圍由一個鍵、值映射的字典構成。與其他非關系型資料庫主要不同在於:Redis中值的類型不僅限於字元串,還支持如下抽象數據類型:
1、字元串列表
2、無序不重復的字元串集合
3、有序不重復的字元串集合
4、鍵、值都為字元串的哈希表
值的類型決定了值本身支持的操作。Redis支持不同無序、有序的列表,無序、有序的集合間的交集、並集等高級伺服器端原子操作。