Redis相關命令

2021-09-24 03:14:25 字數 3427 閱讀 6266

2、list相關操作(有序可重複)

向list根據left方向以此新增資料(先進後出)

lpush list1 1 2 3 4 5 6

獲取list中的全部資料

lrange list1 0 -1

向list根據right方向以此新增資料(先進先出)

rpush list2 1 2 3 4 5 6

彈出集合中第乙個元素

lpop list1

彈出集合中最後乙個元素

rpop list1

通過索引獲取列表中的元素?lindex key index

lindex list1 3

獲取集合的長度

llen list1

從list1集合中刪除1個4,如果集合中沒有4,那麼就不刪除

lrem list1 1 4

擷取指定範圍的值後再賦值給key

ltrim list1 0 3

移除列表的最後乙個元素,並將該元素新增到另乙個列表並返回

rpoplpush list1 list2

修改list1集合中指定索引index的value值

lset list1 index value

在list1中5的後面再新增55

linsert list1 after 5 55

在list1中5的前面再新增66

linsert list1 before 5 66

總結:它是乙個字串鍊錶,left、right都可以插入新增;

如果鍵不存在,建立新的鍊錶;

如果鍵已存在,新增內容;

如果值全移除,對應的鍵也就消失了。

鍊錶的操作無論是頭和尾效率都極高,但假如是對中間元素進行操作,效率就很慘淡了。

3、set相關操作(無序不重複)

向set集合中新增元素,不允許重複,先進先出

sadd set1 1 1 2 3 4 5 6

獲取集合中所有元素

smembers set1

獲取集合元素的個數

scard set1

刪除集合中的元素

srem set1 6

隨即從集合中取出3個元素

srandmember set1 3

從集合中隨機彈出乙個元素

spop set1

作用是將set1裡的1賦給set2

smove set1 set2 1

在第乙個set裡面而不在後面任何乙個set裡面的項(差集)

sdiff set1 set2

獲取兩個集合都有的元素(交集)

sinter set1 set2

獲取兩個集合所有的元素(並集)

sunion set1 set2

4、hash相關操作

向map中新增k-v鍵值對

hset map1 name boy

從map中獲取key為name的value值

hget map1 name

獲取map中所有的鍵值對

hgetall map1

向map中新增多個k-v鍵值對

hmset map1 age 22 name jun

從map中同時獲取多個key的value值

hmget map1 age name

從map中根據key刪除乙個k-v鍵值對

hdel map1 name

獲取map集合的長度

hlen map1

判斷該map集合中是否存在某乙個key

hexists map1 age

獲取map中所有的key

hkeys map1

獲取map中所有的value值

hvals map1

在當前map中age值的基礎上加22

hincrby map1 age 22

在當前map中age值的基礎上加11(浮點數)

hincrbyfloat map1 age 11

不存在賦值,存在了無效。

hsetnx map1 age 11

5、zset相關操作

新增有序集合,鍵值對:score-value

zadd zset1 60 v1 70 v2 65 v3

獲取集合指定區間的值,-1代表末尾

zrange zset1 0 -1

逆序獲取集合指定區間的值

zrevrange zset1 0 -1

同時也把分數值獲取下來

zrange zset1 0 -1 withscores

獲取集合指定分數區間的值(包含邊界值)

zrangebyscore zset1 50 66

逆序獲取集合指定分數區間的值(分數值也得反著)

zrevrangebyscore zset1 66 50

獲取集合指定分數區間的值(不包含邊界值)

zrangebyscore zset1 (50 (66

同時也把分數值獲取下來

zrangebyscore zset1 50 65 withscores

limit作用的是返回限制,第乙個2是下標,第二個2是每次返回多少條

zrangebyscore zset1 50 65 limit 2 2

刪除集合中某個元素

zrem zset1 v1

獲取集合元素個數

zcard zset1

獲取集合指定score區間元素的個數,包含邊界

zcount zset1 51 61

獲取該值在集合中的下標

zrank zset1 v5

逆序獲取該值在集合中的下標

zrevrank zset1 v5

獲取該值在集合中的分數

zscore zset1 v1

6、redis事務

開啟事務

multi

執行命令......

執行事務

exec

備註1:(開啟事務之後,如果執行的命令是編譯報錯,那麼即使你exec,所有的命令依然都是失敗的,全體連坐)

編譯報錯:比如是set key,但是沒有value

備註2:(開啟事務之後,如果執行的命令是執行報錯,如果你exec,那麼錯誤的就錯誤了,正確的依然可以執行)

執行報錯:比如是對乙個字母進行加減操作

取消事務

discard

watch banlance

multi

decrby banlance 2

incrby debt 2

exec

此時餘額已經被監控了,正在被使用,如果在此區間,預約已經被其他客戶端修改了,那麼此時exec就會報錯

意思就是這個事務正在處理餘額呢,此時餘額又被其他客戶端修改了,那麼此次事務一定是失敗的

watch

監控乙個key,如果事務執行之前,這個key被其他命令所修改,那麼事務將被打斷

unwatch 取消監控

redis 鍵值相關命令

keys檢視所有的key模糊查詢 keys keys my exists檢視鍵是否崔在 exists key del刪除鍵 del key ttl檢視key的有效時長 ttl key select選擇資料庫 select databaseindex move移動資料庫 move key databa...

Redis 相關操作命令

本來想搞個桌布的,不但放不下還非常醜 命令說明 select 下標 選擇下標所處的資料庫 dbsize 檢視當前資料庫的鍵數量 flushdb 清空當前db flushall 清空所有的db 命令說明 keys 匹配符 匹配符有 和 代表了乙個字元,號代表了n個字元!exists 鍵名 是否存在這個...

Redis 學習相關命令

型別 string key 1024 位元組 val 512 兆 命令 set k v getset k v 先獲取再設定值 del k incr k 不存在k 會先建立k 再預設0遞增1為 1 decr k 不存在k 會先建立k 再預設0遞減1為 1 incrby k v 在k的v基礎上增加v d...