這篇文章透過指令和運用場景,帶大家了解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影片教學】
redis 指令查詢:http://www.redis.cn/commands.html
備註:redis 指令不區分大小寫,而key 是區分大小寫的
查詢指令幫助:
#help @類型名詞
##範例:
string 字串型別最常用## 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 在幾秒鐘後過期#運用場景
#商品編號、訂單號碼採用INCR 指令產生命令實踐
#hash 雜湊類型
和Java 資料結構映射Map
一次設定一個欄位值# 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 3344771總數--> hlen shopcar:uid1024
全部選擇--> hgetall shopcar:uid1024
list 清單類型
向清單右邊新增元素
rpush key value [value ...]
查看清單
lrange key start stop
取得清單中元素的個數
llen key
指令使用
應用場景
微信文章訂閱公眾號
1、【xx寶】和【xx報】發布了文章分別是11 和22#3、查看作者自己的訂閱號碼的全部文章,類似分頁,下面0-10 就是一次顯示10 條lrange likearticle:uid1024 0 10
set 不重複列表類型
新增元素sadd key member [member ...]
刪除元素
# #srem key member [member ...]
取得集合的所有元素
#smembers key
判斷元素是否在集合中
sismember key member
#取得集合中的元素數量
scard key
從集合中隨機彈出一個元素, 元素不刪除
#spop key [數字]
集合運算屬於A 但不屬於B 的元素構造成的集合
屬於A 同時也屬於B 共同擁有的元素
simter key [key ...]集合的並集運算A v B
屬於A 或屬於B 的元素合併後的集合
sunion key [key ...] 運用場景 微信抽獎小程式#1、用戶id,立即參與,sadd key 用戶id
#2、顯示已經有多少人參與了目前有67231 人參與, scard key3、抽獎(從set 中任意選取N 個中獎人)srandmember key 2 隨機抽獎 2 個人,元素不會刪除spop key 3 司機抽獎3 個人,元素會刪除微信朋友圈讚 1.新增讚; sadd pub:msgid 讚用戶id1 讚用戶id22、取消按讚;srem pub:msgid 讚用戶id#3、展示所有點過讚的用戶smembers pub:msgid4、按讚用戶數統計,就是常見的待點讚的紅色數數字scard pub:msgid5、判斷某個朋友是否對樓主點過贊,sismember pub:msgid 用戶id微博好友關注社交關係 ##共同關注的人#sadd s1 1 2 3 4sadd s2 2 3 6 8sinter s1 s2共同關注:我去某人的微博,馬上獲取和某人共同關注的人我關注的人, 也關注了他(大家愛好相同)我關注了華為餘承東, 餘承東也關注了張召動, 我和余總有共同的愛好sadd s1 1 2 3 4 5
sadd s2 3 4 5 6 7sismember s1 3sismember s2 3##zrange key start stop [WITHSORES]
zscore key member [member ...]
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、依照排名範圍刪除元素###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中的五大基礎類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!