Redis 學習相關命令

2021-09-14 04:05:24 字數 3802 閱讀 3895

型別

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

decrby k v 在k的v基礎上減少v

hash

每個hash可以儲存 4294967295 個鍵值對

命令 hset key k v

hmset key k v v ... 設定多個屬性值

hmget key k k 獲取多個屬性值

hgetall key 全部獲取到

hdel key k v 刪除單個屬性值

del key 可以刪除整個集合

hincrby key k v 給v在v基礎遞增v

hexists key k 檢測是否存在屬性值 1/0

hlen key 長度

hkeys key 返回key以下所有的 k

hvals key 返回key以下所有的 v

list

命令 lpush key v v v ... 從左新增

lpushx key v 從左頭部插入乙個元素 如果key不存在則插入失敗(類似插隊)

lpop key 從左彈出

rpush key v v v ... 從右新增

rpushx key v 從右頭部插入乙個元素 如果key不存在則插入失敗(類似插隊)

rpop key 從右彈出

lrange key start(0) end (-1最後乙個|-2倒數第二個...) 檢視列表範圍

llen key 檢視元素個數

lrem key count v 依次移除 count 個 v

lrem key -count v 依次移除 count 個 v

lrem key 0 v 依次移除 所有的 v

lset key count v 第count(角標)個位置插入v (插隊)

linsert key before vv v 依次且只在的第乙個vv之前插入v (插隊)

linsert key after vv v 依次且只在的第乙個vv之後插入v (插隊)

rpoplpush key1 key2 依次將 key1 右邊的第乙個彈出 然後將彈出的元素插入到 key2 的左邊

tips:由於業務場景中在出現業務高峰的時候運用佇列處理時 彈出的元素沒有處理成功 這樣就造成了彈出元素的業務丟失 為此為了解決該類問題 可以用 rpoplpush 來解決這個問題(舉例:lista 為主業務佇列, listb 為副業務佇列 當lista被消費者彈出乙個元素時 隨即將元素新增到listb佇列 等待業務處理完成時 即可將listb的元素刪除 相當於做了乙個備份的操作)

set

set可包含的最大元素數量是 4294967295

可以看做沒有排序的集合 和 list 一樣(set中不允許出現重複的元素 如果多次出現 只會保留乙份內容)

命令 sadd key v v v ... 新增元素

srem key v v v ... 刪除元素

smembers key 檢視元素

sismember key v 檢視 v 是否存在 (1/0)

sdiff key1 key2 返回 key1 與 key2 的差集

sinter key1 key2 返回 key1 與 key2 的交集

sunion key1 key2 返回 key1 與 key2 的並集(重複的會去掉)

scard key 返回 key 下的數量

srandmember key 返回 key 中隨機的乙個元素

sdiffstore key1 key2 key3 將 key2 與 key3 的差集儲存到 key1

sinterstore key1 key2 key3 將 key2 與 key3 的交集儲存到 key1

sunionstore key1 key2 key3 將 key2 與 key3 的並集儲存到 key1

sorted-set

sorted-set 與 set 之間的區別:都會有乙個分數與之關聯 redis正是通過這個分數為集合從小到大的排序 雖然值是唯一的 但是分數是可以重複的

命令 zadd key num v num v ... 給key鍵新增 num分數 到v(可以是多個 如果num重複 成功返回0 會修改為本次的num)

zscore key v 返回key下 v 的分數

zcard key 返回key下的長度

zrem key v v 刪除key下的v

zrange key 0 -1 返回key下第乙個到最後乙個的v

zrange key 0 -1 withscores 返回key下第乙個到最後乙個的v與v對應的分數

zrevrange key 0 -1 withscores 以分數從大到小返回key的v 與 v對應的分數

zremrangebyrank key start end 以分數從大到小 有序的 從 start 到 end 之間刪除

zremrangebyscore key startnum endnum 刪除key下分數 從 startnum 到 endnum 之間的 v

zrangebyscore key startnum endnum limit start end 以分數從大到小 返回startnum 到 endnum 分數區間 的第 start 到 end結束

zincrby key num v 給 key 的 v 在 v 的基礎上增加 num

zcount key startnum endnum 返回 key 下分數在 startnum 到 endnum 之間的個數

tips:主要的應用場景在於遊戲的排名、微博的熱點話題、遊戲的積分... ...

Redis相關命令

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 彈出集合...

redis學習筆記二 redis的相關命令

expire key time 以秒為單位對於記憶體中不常用的資料塊叫做lru,會把lru資料塊移出記憶體。valatile lru 設定超時時間中,刪除最不常用的資料。allkeys lru 設定所以key中不常用的刪除。valatile random 設定超時時間中,隨機刪除key。allkey...

Redis相關學習

remote dictionary server redis 是乙個由salvatore sanfilippo寫的key value儲存系統。redis是乙個開源的使用ansi c語言編寫 遵守bsd協議 支援網路 可基於記憶體亦可持久化的日誌型 key value資料庫,並提供多種語言的api。它...