中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

杭州營銷seo顧問服務(wù)四川

杭州營銷,seo顧問服務(wù)四川,遼源網(wǎng)站建設(shè),小程序設(shè)計(jì)開發(fā)5.redis常用的五種數(shù)據(jù)類型 5.1 Redis String字符串 5.1.1 簡介 String類型在redis中最常見的一種類型string類型是二制安全的&#xff0c;可以存放字符串、數(shù)值、json、圖像數(shù)據(jù)value存儲最大數(shù)據(jù)量是512M 5.1.2 常用命令 set < key>< value>&#xff1a;添加…

5.redis常用的五種數(shù)據(jù)類型

5.1 Redis String字符串

5.1.1 簡介

  • String類型在redis中最常見的一種類型
  • string類型是二制安全的,可以存放字符串、數(shù)值、json、圖像數(shù)據(jù)
  • value存儲最大數(shù)據(jù)量是512M

5.1.2 常用命令

  • set < key>< value>:添加鍵值對(下面指令可以再后添加)
    • nx:當(dāng)數(shù)據(jù)庫中key不存在時(shí),可以將key-value添加到數(shù)據(jù)庫
    • xx: 當(dāng)數(shù)據(jù)庫key存在時(shí),可以將key-value添加到數(shù)據(jù)庫,與nx參數(shù)互斥
    • ex: 設(shè)置key-value添加到數(shù)據(jù)庫,并設(shè)置key的超時(shí)時(shí)間(以秒鐘為單位)
    • px:設(shè)置key-value添加到數(shù)據(jù)庫,并設(shè)置key的超時(shí)時(shí)間(以豪秒鐘為單位),與ex互斥
  • get< key>查詢對應(yīng)鍵值
  • append < key>< value>:將給定的值追加到key的末尾
  • strlen < key>:獲取值的長度
  • setnx < key>< value>:只有在key不存在時(shí),設(shè)置key-value加入到數(shù)據(jù)庫
  • setex < key> < timeout>< value>:添加鍵值對,同時(shí)設(shè)置過期時(shí)間(以秒為單位)
  • incr < key>:將key中存儲的數(shù)字加1處理,只能對數(shù)字值操作。如果是空,添加進(jìn)key并設(shè)值為1
  • decr < key>:將key中存儲的數(shù)字減1處理,只能對數(shù)字值操作。如果是空,值為1
  • incrby < key>< increment>:將key中存儲的數(shù)字值增加指定步長的數(shù)值,如果是空,值為步長。
    (具有原子性)
  • decrby < key>< decrement>: 將key中存儲的數(shù)字值減少指定步長的數(shù)值,如果是空,值為步長。
    (具有原子性)
  • mset < key1>< value1>[< key2>< value2>…]:同時(shí)設(shè)置1個(gè)或多個(gè)key-value值
  • mget < key1>[< key2>…]:同時(shí)獲取1個(gè)或多個(gè)value
  • msetnx < key1>< value1>[< key2>< value2>…]:當(dāng)所有給定的key都不存在時(shí),同時(shí)設(shè)置1個(gè)或
    多個(gè)key-value值**(具有原子性)**
  • getrange/substr < key>< start>< end> 將給定key,獲取從start(包含)到end(包含)的值
  • setrange < key>< offset>< value>:從偏移量offset開始,用value去覆蓋key中存儲的字符串值
  • getset< key>< value>: 對給定的key設(shè)置新值,同時(shí)返回舊值。如果key不存在,則添加一個(gè)key-value值

5.1.3應(yīng)用場景

單值緩存

  • 設(shè)置值:set key value;
  • 獲取值: get key

對象緩存

  • set stu:001 value(json) (把對象轉(zhuǎn)為json串保存)
  • mset stu:001:name zhangsan stu:001:age 18 stu:001:gender 男 (分別對每個(gè)字段進(jìn)行不同key的存儲)
  • mget stu:001:name stu:001:age(批量獲取)

分布式鎖

  • setnx key:001 true //返回1代表加鎖成功
  • setnx key:001 true //返回0代表加鎖失敗,setnx如果存在,則無法存入數(shù)據(jù),返回0
  • //…業(yè)務(wù)操作
    del key:001 //執(zhí)行完業(yè)務(wù)釋放鎖
    set key:001 true ex 20 nx //防止程序意外終止導(dǎo)致死鎖

計(jì)數(shù)器

  • incr article:read:1001 //統(tǒng)計(jì)文章閱讀數(shù)量,其中artcle:read:1001是key

分布式系統(tǒng)全局序列號

  • incrby orderid 100 //批量生成序列號就是基于orderid的value加100

5.2 Redis List列表

5.2.1 簡介

  • Redis列表是簡單的字符串列表,單鍵多值,按照插入順序排序。 可以添加一個(gè)元素到列表的頭部(左邊)或者尾部(右邊)
  • 一個(gè)列表最多可以包含2^31-1個(gè)元素
  • 底層是一個(gè)雙向鏈表,對兩端的操作新能很高,通過下標(biāo)的操作中間節(jié)點(diǎn)性能較弱

5.2.2 常用命令

  • lpush < key> < value1>[< value2>…]:從左側(cè)插入一個(gè)或多個(gè)值
  • lpushx < key> < value1>[< value2>…]:將一個(gè)或多個(gè)值插入到已存在的列表頭部 (有一個(gè)判斷功能,存在的話才做,不存在就不做)
  • lrange < key>< start>< stop>:獲取列表指定范圍內(nèi)的元素,0左邊第1位,-1右邊第1 位,0 ~-1取出所有
  • rpush < key> < value1>[< value2>…]:從右側(cè)插入一個(gè)或多個(gè)值
  • rpushx < key> < value1>[< value2>…]:將一個(gè)或多個(gè)值插入到已存在的列表尾部
  • lpop < key>[count]:移除并獲取列表中左邊第1個(gè)元素,count表明獲取的總數(shù)量,返回的為移除的
    元素
  • rpop < key>[count]:移除并獲取列表中右邊第1個(gè)元素,count表明獲取的總數(shù)量,返回的為移除的元素
  • rpoplpush < source>< destination>:移除源列表的尾部的元素(右邊第一個(gè)),將該元素添加到目標(biāo)列表的頭部(左邊第一個(gè)),并返回該元素
  • lindex < key>< index>:通過索引獲取列表中的元素
  • llen < key>:獲取列表長度
  • linsert < key> before|after < pivot>< element>:在< pivot>基準(zhǔn)元素前或者后面插入< element>,如果key不存在,返回0。如果< pivot>不存在,返回-1,如果操作成功,返回執(zhí)行后的列表長度
  • lrem < key>< count>< element>:根據(jù)count的值,移除列表中與參數(shù)相等的元素
    • count=0 移除表中所有與參數(shù)相等的值
    • count>0 從表頭開始向表尾搜索,移除與參數(shù)相等的元素,數(shù)量為count
    • count<0 從表尾開始向表頭搜索,移除與參數(shù)相等的元素,數(shù)量為count的絕對值
  • lset < key>< index> < element>:設(shè)置給定索引位置的值
  • ltrim< key>< start> < stop>:對列表進(jìn)行修剪,只保留給定區(qū)間的元素,不在指定區(qū)間的被刪除
  • brpop < key> timeout:阻塞式移除指定key的元素,如果key中沒有元素,就等待,直到有元素或超時(shí),執(zhí)行結(jié)束

5.2.3 應(yīng)用場景

數(shù)據(jù)隊(duì)列

  • 堆棧stack=lpush+lpop
  • 隊(duì)列queue=lpush+rpop
  • 阻塞式消息隊(duì)列 blocking mq=lpush+brpop

訂閱號時(shí)間線

  • lrange key start stop(隊(duì)列就是數(shù)據(jù),然后根據(jù)想要獲取的元素,輸入對應(yīng)元素下標(biāo)獲取數(shù)據(jù))

5.3 Redis Hash 哈希

5.3.1 簡介

是一個(gè)String類型的鍵和value(對象),特別適合于儲存對象,類似于Java中的Map<String, Object>,有以下幾種處理方式

  • 用key存儲學(xué)生id,用value存儲序列化之后用戶對象(如果用戶屬性數(shù)據(jù)需要修改,操作較復(fù)雜,開銷較大)
  • 用key存儲學(xué)生id+屬性名,用value存儲屬性值(用戶id數(shù)據(jù)冗余)
  • 用key存儲學(xué)生id,用value存儲field+value的hash。通過key(學(xué)生d)+field(屬性)可以操作對應(yīng)數(shù)據(jù)。

5.3.2 常用命令

  • hset < key>< field>< value>[< field>< value>…]:用于為哈希表中的字段賦值,如果字段在hash表中存在,則會被覆蓋
  • hmset:用法同hset,在redis4.0.0中被棄用
  • hsetnx < key>< field>< value>:只有在字段不存在時(shí),才設(shè)置哈希表字段中的值(不支持多個(gè))
  • hget < key>< field> 返回哈希表中指定的字段的值
  • hmget < key>< field>[< field>…]:獲取哈希表中所有給定的字段值
  • hgetall < key>:獲取在哈希表中指定key的所有字段和值
  • hexists < key>< field>:判斷哈希表中指定的字段是否存在,存在返回1 ,否則返回0
  • hkeys < key>:獲取哈希表中所有的字段
  • hvals < key>:獲取哈希表中所有的值
  • hlen < key>:獲取哈希表中的field數(shù)量
  • hdel < key>< field>[< field>…]:刪除一個(gè)或多個(gè)哈希表字段
  • hincrby < key>< field>< increment>:為哈希表key中指定的field字段的整數(shù)值加上增加increment值
  • hincrbyfloat < key>< field>< increment>:為哈希表key中指定的field字段的浮點(diǎn)數(shù)值加上增加increment值

5.3.3 應(yīng)用場景

  1. 對象緩存 hset stu:001 name zhangsan age 20 gender man
  2. 電商購物車操作
    • 以用戶id作為key, 以商品id作為field,以商品數(shù)量作為value
    • 添加商品:
      • hset user:001 s:001 1
      • hset user:001 s:002 2
    • 增減商品數(shù)量:hincrby user:001 s:001 3
    • 查看購物車商品總數(shù): hlen user:001
    • 刪除商品 : hdel user:001 s:001
    • 獲取所有商品: hgetall user:001

5.4 Redis Set集合

5.4.1 簡介

set是String類型元素?zé)o序集合,對外提供的功能和list類似

5.4.2 常用命令

  • sadd < key>< member>[< member>…]:將一個(gè)或多個(gè)成員元素加入到集合中,如果集合中已經(jīng)包含成員元素,則被忽略
  • smembers < key>:返回集合中的所有成員。
  • sismember < key>< member>:判斷給定的成員元素是否是集合中的成員,如果是返回1,否則返回0
  • scard < key>:返回集合中元素個(gè)數(shù)
  • srem < key>< member>[< member>…]:移除集合中一個(gè)或多個(gè)元素
  • spop < key>[< count>]:移除并返回集合中的一個(gè)或count個(gè)隨機(jī)元素
  • srandmember < key>[< count>]:與spop相似,返回隨機(jī)元素,不做移除
  • smove < source> < destination> < member>:將member元素從source源移動到destination目標(biāo)
  • sinter < key>[< key>…]:返回給定集合的交集(共同包含)元素
  • sinterstore < destination> < key1>[< key2>…]:返回給定所有集合的交集,并存儲到destination目標(biāo)中
  • sunion < key>[< key>…]:返回給定集合的并集(所有)元素
  • sunionstore < destination> < key1>[< key2>…]:返回給定所有集合的并集,并存儲到destination目標(biāo)中
  • sdiff < key>[< key>…]:返回給定集合的差集(key1中不包含key2中的元素)
  • sdiffstore < destination> < key1>[< key2>…]:返回給定所有集合的差集,并存儲到destination目標(biāo)中

5.4.3 應(yīng)用場景

  • 抽獎
    • 參與抽獎:sadd cj001 user:13000000000 user:13455556666 user:13566667777 (將參與抽獎用戶放入set中)
    • 查看所有參與用戶: smembers cj001 (查看set數(shù)組所有數(shù)據(jù))
    • 實(shí)現(xiàn)抽獎: spop cj001 3(彈出任意三個(gè)數(shù)據(jù)) / srandmember cj001 3 (返回任意三個(gè)數(shù)據(jù))
  • 朋友圈點(diǎn)贊 快手/抖音
    • 點(diǎn)贊 (向set數(shù)組中添加元素)
      • sadd like:friend001 user:001
      • sadd like:friend001 user:002
    • 取消點(diǎn)贊 srem like:friend001 user:001 (移除此元素)
    • 判斷用戶是否已點(diǎn)贊 sismember like:friend001 user:001 (查看此元素是否存在set中)
    • 顯示點(diǎn)贊用戶 smembers like:friend001 (查看set中的元素)
    • 獲取點(diǎn)贊次數(shù) scard like:friend001 (獲取set長度)
  • 關(guān)注模型: sinter交集 sunion并集 sdiff 差集
    • 微博 sadd g:list:u001 1001 sadd g:list:u002 1001 你們共同關(guān)注的 sinter交集
    • QQ 你們有共同好友 sinter交集
    • 快手 可能認(rèn)識的人 sdiff差集

5.5 Redis ZSet有序集合

5.5.1 簡介

  • 有序集合是String的有序結(jié)合,不允許重復(fù)出現(xiàn)成員
  • 每個(gè)元素關(guān)聯(lián)一個(gè)double類型的分?jǐn)?shù),redis通過分?jǐn)?shù)為集合中的成員進(jìn)行從小到大的排序
  • 有序集合成員是唯一的,但是分?jǐn)?shù)可以重復(fù)
  • 成員因?yàn)橛行?#xff0c;可以根據(jù)分?jǐn)?shù)或者次序來快速獲取一個(gè)范圍內(nèi)的元素

5.5.2常用命令

  • zadd < key> < score>< member>[< score>< member>…]:將一個(gè)或多個(gè)元素及其分?jǐn)?shù)加入到有序集合中
  • zrange < key>< min>< max> [byscore|bylex] [rev] [ limit offset count] [withscores]:返回有序集合指定區(qū)間的成員,
    • byscore按分?jǐn)?shù)區(qū)間,使用此方法通過分?jǐn)?shù)排序獲取所有的數(shù)據(jù)zrange z1 -inf +inf byscore
    • bylex按字典區(qū)間[其中如果想要全部查詢,min和max是-和+],
    • rev 反向排序(分?jǐn)?shù)大的寫前邊,小的寫后邊),
    • limit分頁(offset偏移量,count返回的總數(shù)),
    • withscores返回時(shí)帶有對應(yīng)的分?jǐn)?shù))
  • zrevrange < key>< start>< stop>[ limit offset count]:返回集合反轉(zhuǎn)后的成員
  • zrangebyscore < key>< min>< max> [withscores] [ limit offset count]:參考zrange用法
  • zrevrangebyscore< key>< max>< min> [withscores] [ limit offset count]:參考zrange用法
  • zrangebylex < key>< min>< max>] [ limit offset count]:通過字典區(qū)間返回有序集合的成員
    • zrangebylex k2 - +:減號最小值,加號最大值
    • zrangebylex k2 [aa (ac:[ 中括號表示包含給定值,( 小括號表示不包含給定值
  • zcard < key>:獲取集合中的成員數(shù)量
  • zincrby < key> < increment>< member> :為集合中指定成員分?jǐn)?shù)加上增量increment
  • zrem < key> < member>[< member>…]:移除集合的一個(gè)或多個(gè)成員
  • zcount < key>< min>< max>:統(tǒng)計(jì)集合中指定區(qū)間分?jǐn)?shù)(都包含)的成員數(shù)量
  • zrank < key>< member>:獲取集合中成員的索引位置
  • zscore < key>< member>:獲取集合中成員的分?jǐn)?shù)值

5.3.3 應(yīng)用場景

  1. 按時(shí)間先后順序排序:朋友圈點(diǎn)贊 zadd 1656667779666(以時(shí)間作為分?jǐn)?shù)) value
  2. 熱搜: 微博 今日頭條 快手 (主要使用分?jǐn)?shù)做處理,每點(diǎn)擊一次分?jǐn)?shù)就加一,然后獲取熱點(diǎn))
  3. 獲取topN zrevrange k1 300 10 limit 0 10
http://www.risenshineclean.com/news/65427.html

相關(guān)文章:

  • 佛山正規(guī)企業(yè)網(wǎng)站排名優(yōu)化關(guān)鍵詞分類
  • 網(wǎng)站實(shí)名認(rèn)證要錢嗎上海網(wǎng)站營銷推廣
  • 網(wǎng)站空間是什么合肥網(wǎng)絡(luò)seo推廣服務(wù)
  • 優(yōu)秀的個(gè)人網(wǎng)站淮安網(wǎng)站seo
  • 以鸚鵡做頭像的網(wǎng)站百度推廣關(guān)鍵詞質(zhì)量度
  • 網(wǎng)站默認(rèn)首頁怎么做抖音推廣怎么做
  • wordpress 多用戶 域名青島網(wǎng)站seo
  • 原型樣網(wǎng)站省委副書記
  • dede做英文網(wǎng)站優(yōu)化線上it培訓(xùn)機(jī)構(gòu)
  • 阿里云網(wǎng)站備案流程aso蘋果關(guān)鍵詞優(yōu)化
  • 手機(jī)網(wǎng)站實(shí)例怎么根據(jù)視頻鏈接找到網(wǎng)址
  • 遵義城鄉(xiāng)建設(shè)網(wǎng)站百度客服人工電話
  • 長沙seo搜索東莞百度推廣排名優(yōu)化
  • 網(wǎng)站頁面做專題的步驟谷歌seo詳細(xì)教學(xué)
  • 微網(wǎng)站的搭建流程泰安優(yōu)化關(guān)鍵詞排名哪家合適
  • 網(wǎng)站如何做關(guān)鍵詞韓國電視劇
  • 西安學(xué)校網(wǎng)站建設(shè)seo排名影響因素主要有
  • 定制型網(wǎng)站設(shè)計(jì)報(bào)價(jià)表無錫整站百度快照優(yōu)化
  • 做視頻資源網(wǎng)站有哪些內(nèi)容線上推廣宣傳方式有哪些
  • 國內(nèi)使用vue做的網(wǎng)站怎么卸載windows優(yōu)化大師
  • 網(wǎng)站模板中企動力關(guān)鍵詞優(yōu)化seo排名
  • wordpress調(diào)起淘寶app百度關(guān)鍵詞優(yōu)化首選667seo
  • 網(wǎng)絡(luò)科技有限公司的簡介高州網(wǎng)站seo
  • 做網(wǎng)站沒有活中國制造網(wǎng)
  • 深圳做微信網(wǎng)站百度搜索app免費(fèi)下載
  • 附近舊模板出售市場長沙seo招聘
  • 中國建設(shè)銀行廣東分行網(wǎng)站收錄情況
  • 卻持網(wǎng)站網(wǎng)店seo關(guān)鍵詞
  • 沈陽網(wǎng)站設(shè)計(jì)百度怎么注冊公司網(wǎng)站
  • dede新聞網(wǎng)站源碼百度搜索入口網(wǎng)址