前面介紹了一些redis的的基本配置,以及安裝,本文繼續學習redis的五大數據類型。
一、Redis的五大數據類型
String(字符串)、List(列表)、Set(集合)、Hash(哈希,類似java里的map)、Zset(sorted set:有序集合)
二、那里去獲取Redis的常見數據類型操作命令
Http://redisdoc.com/
三、Redis鍵(key)
常用的key命令:
keys *(查詢所以的key)
exists key 判斷某個key是否存在(1表示存在,0表示不存在)
move key db(將某個key移動到其他庫中)
expire key 秒:為給定的key設置過期時間(返回1表示成功)
ttl key 查看還有多少秒過期,-1表示永不過期,-2表示已經過期
type key 查看key是什么類型
注意:在set時,如果key存在,則后面的value值將會覆蓋之前的value值
四、Redis字符串(String)
String是redis最基本的類型,你可以理解成與Memcached一樣的類型,一個key對應一個value。
String類是是二進制安全的。意思是redis的String可以包含任何數據。比如jpg圖片或者序列化的對象。
String類型是Redis最基本的數據類型,一個redis中value最多可以是512M
set 設置值,get獲取值,del刪除值
append(拼接String,返回value長度),strlen(獲取String長度)
incr key +1,decr key -1,incrby key n +n, decrby key n -n(需要注意的是,只有數字才可以操作)
如果不是數字,則會報錯。
getrange:獲取指定區間范圍內的值,類似between...and的關系。(注意:從0到-1表示全部)
setrange:設置指定區間范圍內的值,格式是settrange key值 具體值
setex(set with wxpire)鍵秒值:設置key/value時設置存活時間
setnx(set id not exist)設置key 如果key存在則插入數據失敗 返回0
mset(批量插入數據)/mget(批量獲取數據)/msetnx(批量使用setnx插入數據)
五、Redis列表(List)
Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部或者尾部。它的底層是一個鏈表。
lpush key v1 v2 v3(插入list返回長度)
rpush key (在最后加入value的值) lpush key(在最前面加入value的值)
lrange key n n (查詢list的值,0 到 -1為全部)
lpop 從左刪除 rpop從右刪除
lindex 按照索引獲取元素(從上到下)
llen 查看list中元素個數
lrem key n value 刪除n個value,如果value值不夠則刪除所有的這個value值返回刪除個數
ltrim key 開始 index 結束index,截取知道范圍的值后賦值給key
rpoplpush key1 key2 將key1的右側value到key2中
lset key index value 給具體下標位置設置value,如果該下標不存在則報錯
linsert key before/after 值1 值2(在值1之前/之后插入值2,如果有重復的值則會在第一個前后進行插入)
總結:
它是一個字符串鏈表,left,right都可以插入添加
如果鍵不存在,創建新的鏈表,如果鍵已經存在則新增內容
如果內容全部移除。對應的鍵也消失。
鏈表的操作無論是在頭和尾效率都極高,但假如是對中間元素進行操作,效率就很慘淡。
六、Redis集合(Set)
Redis的Set的histring類型的無序集合。他是通過HashTable實現的。
七、Redis哈希(Hash)
Redis hash是一個鍵值對集合。
Redis hash是一個string類型的field和value的映射表,hash特別適合用於存儲對象。
類似Java里面Map<String, Object>
八、Redis有序集合Zset(sorted set)
Redis zset和set一樣也是string類型元素的集合,而且不允許重復的成員。
不同的是每個元素都會關聯一個double類型的分數。
redis正是通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重復。