首頁  >  文章  >  資料庫  >  透過命令與運用場景,帶你了解Redis中的五大基礎類型

透過命令與運用場景,帶你了解Redis中的五大基礎類型

青灯夜游
青灯夜游轉載
2022-02-11 19:51:211709瀏覽

這篇文章透過指令和運用場景,帶大家了解Redis中的五大基礎類型,指令和實作比較多,希望對大家有幫助!

透過命令與運用場景,帶你了解Redis中的五大基礎類型

redis 傳統5 大數據型別的運用

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 @類型名詞

##範例:

透過命令與運用場景,帶你了解Redis中的五大基礎類型

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]

透過命令與運用場景,帶你了解Redis中的五大基礎類型

EX: key 在幾秒鐘後過期
  • #PX: key自多少毫秒後過期
  • NX: 當key 不存在的時候,才建立key. 效果等同於setnx
  • XX: 當key 存在的時候,覆蓋key

透過命令與運用場景,帶你了解Redis中的五大基礎類型

#運用場景

#商品編號、訂單號碼採用INCR 指令產生
  • 是否喜歡文章按讚
  • 閱讀數:只要點擊了rest 位址,直接使用incr key 指令增加一個數字1,完成記錄數字。

透過命令與運用場景,帶你了解Redis中的五大基礎類型命令實踐

透過命令與運用場景,帶你了解Redis中的五大基礎類型#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

#指令示範

透過命令與運用場景,帶你了解Redis中的五大基礎類型

應用場景

購物車的早期,目前中小廠可以使用

新增商品--> hset shopcar:uid1024 334488 1

新增商品--> hset shopcar:uid2014 334477 1

#增加商品數量--> hincrby shopcar:uid1024 3344771

總數--> hlen shopcar:uid1024

全部選擇--> hgetall shopcar:uid1024

list 清單類型透過命令與運用場景,帶你了解Redis中的五大基礎類型

在清單左邊加入元素

##lpush key value [value ...]

向清單右邊新增元素

rpush key value [value ...]

查看清單

lrange key start stop

取得清單中元素的個數

llen key

指令使用

透過命令與運用場景,帶你了解Redis中的五大基礎類型

應用場景

微信文章訂閱公眾號透過命令與運用場景,帶你了解Redis中的五大基礎類型

1、【xx寶】和【xx報】發布了文章分別是11 和22

2、 作者追蹤了他們兩個,只要他們發布了新的文章,就會推送到我的list

lpush likearticle: uid1024 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

從集合中隨機彈出一個元素, 元素不刪除

    srandmember key [數字]
  • 從集合中隨機彈出一個元素,出一個刪除

#spop key [數字]

集合運算
  • #集合的差集運算A - B

屬於A 但不屬於B 的元素構造成的集合

    sdiff key [key ...]
  • 集合的交集元算A ^ B

屬於A 同時也屬於B 共同擁有的元素

simter key [key ...]集合的並集運算A v B

屬於A 或屬於B 的元素合併後的集合透過命令與運用場景,帶你了解Redis中的五大基礎類型

sunion key [key ...]

運用場景

微信抽獎小程式

#1、用戶id,立即參與,sadd key 用戶id1透過命令與運用場景,帶你了解Redis中的五大基礎類型

#2、顯示已經有多少人參與了目前有67231 人參與, scard key

3、抽獎(從set 中任意選取N 個中獎人)

srandmember key 2 隨機抽獎 2 個人,元素不會刪除

spop key 3 司機抽獎3 個人,元素會刪除

微信朋友圈讚

1透過命令與運用場景,帶你了解Redis中的五大基礎類型

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

zset 有序集合
#常用指令

  • 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
1透過命令與運用場景,帶你了解Redis中的五大基礎類型

2、抖音熱搜

1透過命令與運用場景,帶你了解Redis中的五大基礎類型

1、點擊影片

ZINCRBY hotavi:20220203 1 八百

ZINCRBY hotavi :20220203 15 八百2 花木蘭

2、展示當日排行前10 條

zrevrange hotavi:20220203 0 9 withscores

更多程式相關知識,請造訪: 程式設計入門! !

以上是透過命令與運用場景,帶你了解Redis中的五大基礎類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:juejin.cn。如有侵權,請聯絡admin@php.cn刪除