您好,登錄后才能下訂單哦!
這篇“Redis中的五大基礎類型是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Redis中的五大基礎類型是什么”文章吧。
redis 傳統 5 大數據類型的落地應用
Redis 介紹:
Redis 是一個開源(BSD許可)的,內存中的數據結構存儲系統,它可以用作數據庫、緩存和消息中間件。 它支持多種類型的數據結構,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets)] 與范圍查詢, bitmaps, hyperloglogs 和 地理空間(geospatial) 索引半徑查詢。 Redis 內置了 復制(replication),LUA腳本(Lua scripting), LRU驅動事件(LRU eviction),事務(transactions) 和不同級別的 磁盤持久化(persistence), 并通過 Redis哨兵(Sentinel) 和自動 分區(Cluster)提供高可用性(high availability)。
備注:redis 命令不區分大小寫,而 key 是區分大小寫的
查詢命令幫助:
help @類型名詞
示例:
最常用
set key vuue
getkey
同時設置/獲取多個鍵值
MSET key value [key value ...]
MGET key [key ,,,]
數值增減
遞增數字 incr key
增加指定的整數 incrby key increment
遞減數值 decr key
減少指定的整數 decrby key decrement
獲取字符長度
STRLEN key
分布式鎖
setnx key value
set key value [EX seconds] [PX milliseconds] [NX|XX]
EX: key 在多少秒后過期
PX: key自多少毫秒后過期
NX: 當key 不存在的時候,才創建 key. 效果等同于 setnx
XX: 當 key 存在的時候,覆蓋 key
運用場景
商品編號、訂單號采用 INCR 命令生成
是否喜歡文章點贊
閱讀數:只要點擊了 rest 地址,直接使用 incr key 命令增加一個數字 1,完成記錄數字。
命令實踐
和 Java 數據結構映射
Map<Stirng, Map<Object, Object>>
一次設置一個字段值
HSET key field value
一次獲取一個字段值
HGET key field
一次設置多個字段值
HMSET key field value [fild value ...]
一次獲取多個字段值
HMGET key field [field ...]
獲取所有字段值
hgetall key
獲取某個 key 內的全部數量
hlen
刪除一個 key
hdel
命令演示
應用場景
購物車的早期,當前中小廠可以使用
新增商品 --> hset shopcar:uid1024 334488 1
新增商品 --> hset shopcar:uid2014 334477 1
增加商品數量 --> hincrby shopcar:uid1024 334477 1
商品總數 --> hlen shopcar:uid1024
全部選擇 --> hgetall shopcar:uid1024
向列表左邊添加元素
lpush key value [value ...]
向列表右邊添加元素
rpush key value [value ...]
查看列表
lrange key start stop
獲取列表中元素的個數
llen key
命令使用
應用場景
微信文章訂閱公眾號
1、【xx寶】和 【xx報】發布了文章分別是 11 和 22
2、 作者關注了他們兩個,只要他們發布了新的文章,就會推送到我的 list
lpush likearticle: uid1024 11 22
3、查看作者自己的訂閱號的全部文章,類似分頁,下面 0-10 就是 一次顯示 10 條 lrange likearticle:uid1024 0 10
添加元素
sadd key member [member ...]
刪除元素
srem key member [member ...]
獲取集合的所有元素
smembers key
判斷元素是否在集合中
sismember key member
獲取集合中的元素個數
scard key
從集合中隨機彈出一個元素, 元素不刪除
srandmember key [數字]
從集合中隨機彈出一個元素,出一個刪一個
spop key [數字]
集合運算
集合的差集運算 A - B
屬于 A 但不屬于 B 的元素構造成的集合
sdiff key [key ...]
集合的交集元算 A ^ B
屬于 A 同時也屬于 B 共同擁有的元素
simter key [key ...]
集合的并集運算 A v B
屬于 A 或者屬于 B 的元素合并后的集合
sunion key [key ...]
運用場景
微信抽獎小程序
1、用戶 id, 立即參與, sadd key 用戶id
2、顯示已經有多少人參與了當前有 67231 人參與, scard key
3、抽獎(從 set 中任意選取 N 個中獎人)
srandmember key 2 隨機抽獎 2 個人, 元素不會刪除
spop key 3 司機抽獎 3 個人, 元素會刪除
微信朋友圈點贊
1、新增點贊 ; sadd pub:msgid 點贊用戶id1 點贊用戶id2
2、取消點贊;srem pub:msgid 點贊用戶id
3、展示所有點過贊的用戶 smembers pub:msgid
4、點贊用戶數統計,就是常見的待點贊的紅色數數字 scard pub:msgid
5、判斷某個朋友是否對樓主點過贊, sismember pub:msgid 用戶id
微博好友關注社交關系
共同關注的人
sadd s1 1 2 3 4
sadd s2 2 3 6 8
sinter s1 s2
共同關注:我去某人的微博,馬上獲取和某人共同關注的人
我關注的人, 也關注了他(大家愛好相同)
我關注了華為余承東, 余承東也關注了張召動, 我和余總有共同的愛好
sadd s1 1 2 3 4 5
sadd s2 3 4 5 6 7
sismember s1 3
sismember s2 3
QQ內推可能認識的人
sadd s1 1 2 3 4 5
sadd s2 3 4 5 6 7
// 共同好友
sinter s1 s2
// 差集
sdiff s1 s2
sdiff s2 s1
常用命令
1、 向有序集合中添加一個元素和該元素的分數
2、 添加元素
ZADD key score member [score member ...]
3、 按照元素分數從小到達的順序返回索引從 strat 到 stop 之間的所有元素
zrange key start stop [WITHSORES]
4、獲取元素的分數
zscore key member [member ...]
5、刪除元素
zrem key member [member ...]
6、 獲取指定分數范圍的元素
zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
7、增加某個元素的分數
zincrby key increment member
8、 獲取集合中元素的數量
zcard key
9、獲得指定分數范圍內的元素個數
zcount key min max
10、按照排名范圍刪除元素
zremrangebyrank key start stop
11、獲取元素的排名
從小到大 zrank key member
從大到小 zrevrank key member
應用場景
1、更具商品銷售對商品進行排序顯示
思路:定義商品銷售排行榜(sorted set 集合),key 為 goods:sellsort, 分數為商品銷售數量。
商品編號 1001 的銷量是 9 , 商品編號 1002 的銷量是 15 | zadd goods:sellsort 9 1001 15 1002
有一個顧客又買了 2 件商品 1001 , 商品編號是 1001 響亮增加 2 | zincrby goods:sellsort 2 10001
求商品銷量前 10 名 zrange goods:sellsort 0 10 withscores
2、 抖音熱搜
1、點擊視頻
ZINCRBY hotavi:20220203 1 八百
ZINCRBY hotavi:20220203 15 八百 2 花木蘭
2、展示當日排行前 10 條
zrevrange hotavi:20220203 0 9 withscores
以上就是關于“Redis中的五大基礎類型是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。