字符串類型操作
- redisdoc.com 所有語法文檔
增刪改查
- 新增
set key value
set name js
- 查詢
get key
get name
-
修改
- set key value
- 如果key已經(jīng)存在就是修改
刪除
del key
del name
字符串類型-高級設(shè)置
-
set key value
- 不管key是否存在都會設(shè)置(不存在就新增, 存在就覆蓋)
- set name css
-
setnx key value
- 只有key不存在才設(shè)置(新增)
- setnx name cs
-
set key value xx
- 只有key存在才設(shè)置(更新)
- set name vue xx
字符串類型- 批量處理
-
批量添加值
- meset key value key value ...
- meset age 18 gender nan
-
批量查詢值
- mget key key key ...
- mget name age gender
字符串類型-其他操作
-
設(shè)置新值返回舊值
- getset key newValue
- getset name react
-
給舊值追加數(shù)據(jù)
- append key value
- append name 12
-
計算value字符串長度
- strlen key
- strlen name
- 注意點(diǎn):中文問題
-
獲取指定下標(biāo)范圍的值
- getrange key start end
- getrange name 0 -1
-
從指定下標(biāo)開始設(shè)置字符串的值
- setrange key offset value
- setrange name 1 123
字符串類型-自增自減操作
-
incr
- 作用: 給指定key的對應(yīng)的 value 自增 1,
- 如果key 不存在, 會自動新增, 并從0開始自增1
- 格式 : incr key
-
decr
- 作用: 給指定key的對應(yīng)的 value 自減 1,
- 如果key 不存在, 會自動遞減, 并從0開始自減1
- 格式 : decr key
-
incrby
- 作用: 給指定key的對應(yīng)的Value增加指定值, 如果key不存在會自動新增, 并從0開始增加
- 格式: incrby key number
-
decrby
- 作用: 給指定key的對應(yīng)的Value減少指定的值, 如果key不存在會自動新增, 并從0開始減少
- 格式: decrby key number
-
incrbyfloat
- 作用: 給指定key的對應(yīng)的Value增加指定值, 如果key不存在會自動新增, 并從0開始增加
- 格式: incrbyfloat key float
哈希類型
- hash類型相當(dāng)于 Js 中的對象, 可以把整個對象當(dāng)做 value 存儲起來
哈希類型-增刪改查
-
增加
- hset key field value
- hset user age css
- hset user age 15
-
查詢
- hget key field
- hget user name
-
修改
- 如果字段不存在就是新增, 如果字段存在就是修改
- hset key field value
- hset user name react
刪除
-
刪除指定字段
- hdel key field
- hdel user name
-
刪除對應(yīng)key所有數(shù)據(jù)
- del key
- del user
哈希類型-高級操作
-
批量新增
- hmset key field1 value1 field2 value2
- hmset user name css age 12
-
批量查詢
- hmget key field field2 field3
- hmget user name age
-
工具指令
- hlen key 返回key存儲的hash表中有多少條數(shù)據(jù)
- hlen user
-
是否存在指定key存儲的Hash中是否有指定的字段
- hexists key field
- hexists user name 返回1表示穿在
- hexists user gender 返回0 表示不存在
哈希類型-其他操作
-
查詢所有的field
- hkeys key
- hkeys user
-
查詢所有的field 和 value
- hvals key
- hvals user
-
查詢所有的field 和value
- hgetall key
- hgetall user
- 注意點(diǎn):redis是單線程的, 以上操作比較耗時,慎用
List類型
- List類型就相當(dāng)于JavaScript中的數(shù)組,可以把整個數(shù)組當(dāng)做一個Value存儲起來
- 注意點(diǎn): List是有序的
List類型-增刪改查
增加
-
從第二value開始添加到第一個的左邊
- lpush key value1 value2 value3
- lpush arr aa bb cc
-
從第二value開始添加到前一個的右邊
- rpush key value1 value2 value3
- rpush arr ff gg
查詢
-
查詢指定范圍的數(shù)據(jù)
- lrange key startIndex endIndex
- 索引從0開始, endIndex等于-1表示取到最后
- lrange arr 0 -1
-
查詢指定索引數(shù)據(jù)
- lindex key index
- 從前往后索引從0開始, 從后往前索引從-1開始
-
修改
- lset key index value
- 注意 index 從0開始
刪除
-
lpop 刪除左邊元素
- lpop key
- lpop user
-
rpop 刪除右邊元素
- rpop key
- rpop user
-
lrem刪除指定個數(shù)的指定元素
- lrem key count value
- count > 0 : 從表頭開始先表尾所有, 移除與value相等的元素, 數(shù)量為count
- count < 0 : 從表尾開始向表頭搜索, 移除與value相等的元素,數(shù)量為count的絕對值
- count = 0 : 移除表中所有與value 相等的值
-
ltrim按照索引剪切列表
- ltrim key start end
List類型-其他操作
-
追加數(shù)據(jù)
lpush key value1 value2 value3
lpush arr 11 22
rpush key value1 value2 value3
rpush arr 33 44
-
插入數(shù)據(jù)
- linsert key before|after oldValue newValue
- linsert arr after 11 test
-
獲取列表長度
- llen key
- llen arr
列表實(shí)現(xiàn)簡單數(shù)據(jù)結(jié)構(gòu)
-
棧結(jié)構(gòu) - 先進(jìn)后出
- lpush + lpop
-
隊列結(jié)構(gòu) - 先進(jìn)先出
- lpush + rpop
如果需要需要'先進(jìn)后出'或者'先進(jìn)先出'的數(shù)據(jù)
我們就可以將這些數(shù)據(jù)存儲到Redis的列表中