真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Redis中有哪些應(yīng)用場景

本篇內(nèi)容介紹了“redis中有哪些應(yīng)用場景”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)公司是專業(yè)的潞州網(wǎng)站建設(shè)公司,潞州接單;提供成都做網(wǎng)站、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行潞州網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

Redis數(shù)據(jù)類型和應(yīng)用場景

Redis是一個Key-Value的存儲系統(tǒng),使用ANSI C語言編寫。 key的類型是字符串?!鞠嚓P(guān)推薦:Redis視頻教程】

value的數(shù)據(jù)類型8種數(shù)據(jù)類型:

  • 常見數(shù)據(jù)類型

    • string字符串類型

    • list列表類型

    • set集合類型

    • sortedset(zset)有序集合類型

    • hash類型

  • 不常見數(shù)據(jù)類型

    • bitmap位圖類型

    • geo地理位置類型

    • stream類型

  • 注意

    Redis中命令是忽略大小寫,(set SET),key是不忽略大小寫的 (NAME name)

Redis中有哪些應(yīng)用場景

string字符串類型

Redis的String能表達3種值的類型:字符串、整數(shù)、浮點數(shù) 100.01 是個六位的串

常用命令

命令名稱命令格式命令描述
setset key value賦值
getget key取值
getsetgetset key value取值并賦值
msetMSET key1 value1 key2 value2 .. keyN valueN設(shè)置多個 key 的值為各自對應(yīng)的 value。
mgetMGET KEY1 KEY2 .. KEYN返回所有(一個或多個)給定 key 的值
EXPIREEXPIRE   key  seconds設(shè)置一個鍵的過期時間(秒)
appendappend key value向尾部追加值
strlenstrlen key獲取字符串長度
setnxsetnx key value當(dāng)value不存在時采用賦值
set key value NX PX 3000 原子操作,px 設(shè)置毫秒數(shù)
incrincr key遞增數(shù)字
incrbyincrby key increment增加指定的整數(shù)
decrdecr key遞減數(shù)字
decrbydecrby key decrement減少指定的整數(shù)

應(yīng)用場景

  • 1、對象緩存

  • 2、單值緩存

  • 3、incr用于樂觀鎖 incr:遞增數(shù)字,可用于實現(xiàn)樂觀鎖 watch(事務(wù))

  • 4、setnx用于分布式鎖 當(dāng)value不存在時采用賦值,可用于實現(xiàn)分布式鎖

  • 5、計數(shù)器

  • 6、Web集群session共享

常用方法舉例

dockerRedis:0>keys *
dockerRedis:0>append testName 2
"1"
dockerRedis:0>exists testName
"1"
dockerRedis:0>append testName " 1234"
"6"
dockerRedis:0>get testName
"2 1234"
dockerRedis:0>set testName1 "testName1"
"OK"
dockerRedis:0>get testName1
"testName1"
dockerRedis:0>getset testName2 "testName2"
null
dockerRedis:0>get testName2
"testName2"
dockerRedis:0>strlen testName
"6"
dockerRedis:0>set incrTest "10"
"OK"
dockerRedis:0>incr incrTest
"11"
dockerRedis:0>get incrTest
"11"
dockerRedis:0>decr incrTest
"10"
dockerRedis:0>decrby incrTest 5
"5"
dockerRedis:0>mset set01 1 set02 2 set03 3
"OK"
dockerRedis:0>mget set01 set02 set03
1) "1"
2) "2"
3) "3"

list列表類型

list列表類型可以存儲有序、可重復(fù)的元素獲取頭部或尾部附近的記錄是極快的 list的元素個數(shù)最多為2^32-1個(40億)

常用命令

命令名稱命令格式命令描述
lpushlpush key v1 v2 v3 ...從左側(cè)插入列表
lpoplpop key從列表左側(cè)取出
rpushrpush key v1 v2 v3 ...從右側(cè)插入列表
rpoprpop key從列表右側(cè)取出
lpushxlpushx key value將值插入到列表頭部
blpopblpop key timeout從列表左側(cè)取出,當(dāng)列表為空時阻塞,可以設(shè)置最大阻塞時間,單位為秒
llenllen key獲得列表中元素個數(shù)
lrangelrange key start end返回列表中指定區(qū)間的元素,區(qū)間通過start和end指定
lsetlset key index value將列表index位置的元素設(shè)置成value的值
rpoplpushrpoplpush key1 key2從key1列表右側(cè)彈出并插入到key2列表左側(cè)
rpushxrpushx key將值插入到列表尾部 value
brpopblpop key從列表右側(cè)取出,當(dāng)列表為空時阻塞,可以設(shè)置最大阻塞時 timeout 間,單位為秒
lindexlindex key value獲得列表中下標(biāo)為index的元素 index從0開始 index
ltrimltrim key start end對列表進行修剪,只保留start到end區(qū)間 end
brpoplpushbrpoplpush從key1列表右側(cè)彈出并插入到key2列表左側(cè),會阻塞 key1 key2
linsertlinsert key BEFORE/AFTER pivot value將value插入到列表,且位于值pivot之前或之后

應(yīng)用場景

  • 1、Stack(棧)=LPUSH + LPOP

  • 2、Queue(隊列)=LPUSH + RPOP

  • 3、Blocking MQ(阻塞隊列)=LPUSH + BRPOP

  • 4、用戶列表、商品列表、評論列表

set集合類型

Set:無序、唯一元素 集合中最大的成員數(shù)為 2^32 - 1

常用命令

命令名稱命令格式命令描述
saddsadd key value1 value2 ....往集合key中存入元素,元素存在則忽略,若key不存在則新建
sremsrem key value1 value2 ....從集合key中刪除元素
smemberssmembers key獲得集合中所有元素
spopspop key count從集合key中選出count個元素,元素從key中刪除
srandmembersrandmember key count從集合key中選出count個元素,元素不從key中刪除
scardscard key獲取集合key的元素個數(shù)
sismembersismember key member判斷member元素是否存在于集合key中
sintersinter key1 key2 key3求多集合的交集
sdiffsdiff key1 key2 key3求多集合的差集
sunionsunion key1 key2 key3求多集合的并集

應(yīng)用場景

  • 微信抽獎小程序

  • 微博點贊、收藏、標(biāo)簽

  • 微博微信關(guān)注模型

  • 電商商品篩選

zset有序集合類型

SortedSet(ZSet) 有序集合: 元素本身是無序不重復(fù)的 每個元素關(guān)聯(lián)一個分?jǐn)?shù)(score) 可按分?jǐn)?shù)排序,分?jǐn)?shù)可重復(fù)

常用命令

命令名稱命令格式命令描述
zaddzadd key score1 member1 score2 member2 ...往有序集合key中加入帶分值元素
zremzrem key mem1 mem2 ....從有序集合key中刪除元素
zcardzcard key獲得有序集合中的元素數(shù)量
zcountzcount key min max返回集合中score值在[min,max]區(qū)間 的元素數(shù)量
zincrbyzincrby key increment member為有序集合key中元素member的分值加上increment
zscorezscore key member返回有序集合key中元素member的分值
zrankzrank key member獲得集合中member的排名(按分值從 小到大)
zrangezrange key start end正 序獲取有序集合key從start下標(biāo)到stop下標(biāo)的元素
zrevrankzrevrank key member獲得集合中member的排名(按分值從 大到小)
zrevrangezrevrange key start end倒序獲取有序集合key從start下標(biāo)到stop下標(biāo)的元素

應(yīng)用場景

  • 點擊排行榜、銷量排行榜、關(guān)注排行榜

hash類型

Redis hash是一個string類型的field和value的映射表,它提供了字段和字段值的映射。每個 hash 可以存儲 2^32-1鍵值對(40多億)。

Redis中有哪些應(yīng)用場景

  • 優(yōu)點

    • 1、同類數(shù)據(jù)歸類整合儲存,方便數(shù)據(jù)管理

    • 2、相比string操作消耗內(nèi)存與cpu更小

    • 3、相比string儲存更節(jié)省空間

  • 缺點

    • 1、過期功能不能使用在field上,只能用在key上

    • 2、Redis集群架構(gòu)下不適合大規(guī)模使用

常用命令

命令名稱命令格式命令描述
hsethset key field value存儲一個哈希表key的鍵值
hmsethmset key field1 value1 field2 value2在一個哈希表key中存儲多個鍵值對
hgethget key field查看某個field是否存在
hmgethmget key field1 field2 ...獲取一個字段值
hsetnxhsetnx key field value存儲一個不存在的哈希表key的鍵值
hexistshexists key filed判斷filed是否存在
hgetallhgetall key獲取多個字段值
hdelhdel key field1 field2...刪除指定字段
hincrbyhincrby key field increment指定字段自增increment
hlenhlen key獲得字段數(shù)量

應(yīng)用場景

  • 對象緩存

  • 購物車操作

bitmap位圖類型

bitmap是進行位操作的 通過一個bit位來表示某個元素對應(yīng)的值或者狀態(tài),其中的key就是對應(yīng)元素本身。 bitmap本身會極大的節(jié)省儲存空間。

常用命令

命令名稱命令格式命令描述
setbitsetbit key offset value設(shè)置key在offset處的bit值(只能是0或者 1)。
getbitgetbit key offset獲得key在offset處的bit值
bitcountbitcount key獲得key的bit位為1的個數(shù)
bitposbitpos key value返回第一個被設(shè)置為bit值的索引值
bitopbitop and[or/xor/not] destkey key [key ...]對多個key 進行邏輯運算后存入destkey 中

應(yīng)用場景

  • 1、用戶每月簽到,用戶id為key , 日期作為偏移量 1表示簽到

  • 2、統(tǒng)計活躍用戶, 日期為key,用戶id為偏移量 1表示活躍

  • 3、查詢用戶在線狀態(tài), 日期為key,用戶id為偏移量 1表示在線

geo地理位置類型

geo是Redis用來處理位置信息的。在Redis3.2中正式使用。主要是利用了Z階曲線、Base32編碼和geohash算法

常用命令

命令名稱命令格式命令描述



geoaddgeoadd key 經(jīng)度 緯度 成員名稱1 經(jīng)度1 緯度1 成 員名稱2 經(jīng)度2 緯度 2 ...添加地理坐標(biāo)
geoposgeopos key 成員名稱1 成員名稱2...返回成員經(jīng)緯度
geodistgeodist key 成員1 成員2 單位計算成員間距離
georadiusbymembergeoradiusbymember key 成員 值單位 count 數(shù) asc[desc]根據(jù)成員查找附近的成員
geohashgeohash key 成員名稱1 成員名稱2...返回標(biāo)準(zhǔn)的 geohash串

應(yīng)用場景

1、記錄地理位置

2、計算距離

3、查找"附近的人"

stream數(shù)據(jù)流類型

stream是Redis5.0后新增的數(shù)據(jù)結(jié)構(gòu),用于可持久化的消息隊列。

幾乎滿足了消息隊列具備的全部內(nèi)容,包括:

  • 消息ID的序列化生成

  • 消息遍歷

  • 消息的阻塞和非阻塞讀取

  • 消息的分組消費

  • 未完成消息的處理

  • 消息隊列監(jiān)控

每個Stream都有唯一的名稱,它就是Redis的key,首次使用 xadd 指令追加消息時自動創(chuàng)建

應(yīng)用場景

消息隊列的使用

“Redis中有哪些應(yīng)用場景”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!


分享標(biāo)題:Redis中有哪些應(yīng)用場景
標(biāo)題URL:http://weahome.cn/article/pjoeph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部