redis
支援儲存的value型別相對更多,包括string、list、set、zset和hash。這些資料型別都支援push/pop、add/remove及取交集並集和差集及更豐富的操作。
筆者總結了這五種資料儲存型別及常用命令。
string 是redis最簡單的資料儲存型別,以key-value的形式可對任何資料進行儲存,包括或序列化物件。【k-key v-value】
常用命令 舉例
解釋setk v
set name max
設定key【name】的值為max
set name max2
name 的max值將會被max2覆蓋
getk
get name
返回max2
setnx[not exist ]
setnx age 2
返回1-value設定ok,age 的值將永遠不會被覆蓋
setnx age 3
返回0 value 2 值並未被3覆蓋
get age
返回1
setexk time v
setex hair 10 long
long 值10秒有效期
get hair
10s之間返回龍,過了10s,返回nil空
msetk1 v1 k2 v2
批量設值(可再次為key賦值,value被覆蓋)
msetnxk1 v1 k2 v2
批量設值 ,不可為key再賦值
incrk
incr age
age 自增1
incrbyk 5
incrby age 5
以5為單位自增
decr/
decrby自減
strlenk
strlen age
返回age的value位元組長度
redis的h
ashes型別是乙個string型別的field 和value的對映表,對比於string型別操作,使用hashes儲存會占用更少記憶體,而且更方便對整個物件進行訪問。它的操作和string 不同的是,hashes的命令引數一般第乙個都會指定table的名字,例如user
,具體使用如下
常用命令 舉例
解釋hsettable k v h
set user:001 name max
將user雜湊表中id為001的name值設定為max
hget
hget user:001 name
返回max
hsetnx
同string-setnx
hmset
hmset user:001 name1 aa name2 bb
同string-mset
hincr/hincrby
同string
hdecr/hdecrby
同string
hexistskey
查詢key是否存在
hdelkey
hdel user:001 age
刪除key
hvals
hvals
user:001 返回
所有value
hkeys
hkeys
user:001 返回
所有key 值
hgetall
hgetall
user:001 返回
所有key值 +value 值
redis中的listlist是乙個鍊錶結構,主要通過push 和pop獲值,list中的每乙個元素都是string型別的雙向鍊錶,可以通過從頭部或尾部新增刪除元素,所以對redis的list資料型別做操作,list既可以作為棧,也可以最為佇列。同樣的,對list進行資料操作,第乙個引數也大多都是list名字。
常用命令 舉例
解釋lpush
lpush mylist zz
將value zz從list 頭部加入
rpush
rpush mylist yy
將value yy從list 尾部加入
lrange
lrange mylist 0 -1
獲取顯示list中第乙個元素到最後乙個
lpop
lpop mylist
從list頭部刪除乙個元素
rpop
rpop mylist
從list尾部刪除乙個元素
rpoplpush
rpoplpush mylist1 mylist2 從
mylist1 的尾部移出乙個元素新增到mylist2的頂部
linsert
linsert
mylist value1
before value2
在v2之前插入v1元素
lset
lset mylist 0 value3
將下標為0的值改為value3
lrem
lrem mylist 1 「zz」
刪除1個mylist中值為zz的元素
lindex
lindex mylist 0
定位mylist 下標為0【也就是頂部第乙個元素】的value
從上面對不同資料型別的操作總結和舉例來看,對比於關係型資料庫,redis對資料的crud操作更多的是根據資料型別分成5大塊,每一種型別對應自己的資料操作命令,string 是redis最基礎的資料型別,hashes 和list ,以及接下來會介紹的set和zset 都是在string的基礎之上,不論是操作命令,還是資料儲存的單位,都以string為最小單元。hash是基於string的類似於表的儲存結構,list也是表,不過它更特殊,具有鏈的屬性,上下、頭尾,所以在對list型別資料操作時,可當作佇列抑或棧。這些都是redis實現資料儲存的基礎,並且在對mongo有一定認識之後,對同樣是nosql資料庫的redis的使用也會一通百通,在相同中探索他們各自的應用場景和資料儲存特點。
redis 資料型別儲存
redis的字串是位元組序列。在redis中字串是二進位制安全的,這意味著他們有乙個已知的長度,是沒有任何特殊字元終止決定的,所以可以儲存任何東西,最大長度可達512兆。redis 127.0.0.1 6379 set name yiibai okredis 127.0.0.1 6379 get n...
Redis儲存資料 Hash型別
redis儲存hash型別的資料,就是map裡儲存map 儲存的map的key為欄位名,值為字段值 儲存資料 hset key 欄位名 字段值 127.0.0.1 6379 1 hset user username wlf integer 1 獲取資料hget key 欄位名 127.0.0.1 6...
redis儲存資料型別 Redis5資料型別詳解
redis5資料型別詳解 redis除了可以儲存鍵還可以儲存常見的5種資料型別,分別是 string list set hash zset。對於redis的命令有一部分是可以公用的,但是還有一些其他的命令是屬於特殊使用的。首先看看一張關於redis5種資料結構的對比 下邊就分別介紹5中國不同的資料結...