久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網
      最全最豐富的資訊網站

      一文搞定Redis五大數(shù)據(jù)類型及應用場景

      1.string類型

      1-1 string類型數(shù)據(jù)的基本操作

      添加 / 修改數(shù)據(jù):set key value

      獲取數(shù)據(jù):get key

      刪除數(shù)據(jù):del key

      添加 / 修改多個數(shù)據(jù):mset key value key1 value1

      獲取多個數(shù)據(jù):mget key key1

      追加信息到原始數(shù)據(jù)后邊(不存在時則添加):append key value

      1-2 string類型 增減操作

      設置數(shù)值增加指定范圍的值:incr key 默認每次加1 | incrby key value 每次新增value
      設置數(shù)據(jù)減少指定范圍:decr key | decrby key value 跟新增是一回事

      應用場景

      控制數(shù)據(jù)庫表主鍵id,為數(shù)據(jù)庫表提供主鍵生成策略,保證數(shù)據(jù)表主鍵的一致性。

      1-3 string類型 時效操作

      設置過期時間:setex key seconds value

      應用場景

      實現(xiàn)限制時間投票功能:例如一個微信一個小時可以投一次
      實現(xiàn)熱點信息:例如電商行業(yè)熱門商品、新聞網站熱門新聞

      1-4 string類型的應用場景

      微博大V主頁高頻的訪問,對于粉絲數(shù)、關注數(shù)、微博數(shù)都需要時時更新。這個就屬于高頻信息了,我們就可以使用redis的string類型來解決
      一文搞定Redis五大數(shù)據(jù)類型及應用場景
      在redis中為大V設定用戶信息,以用戶主鍵和屬性為鍵值,以下為實現(xiàn)案例。
      一文搞定Redis五大數(shù)據(jù)類型及應用場景
      在這里需要簡單的說一下key的命名規(guī)則:以表名+主鍵+主鍵值+字段 :字段值。以這樣的規(guī)則來命名就可以很好的來管理我們的鍵值。

      我們還可以使用另外一種方式來實現(xiàn),就是鍵后邊直接跟一個結構,例如
      一文搞定Redis五大數(shù)據(jù)類型及應用場景
      以上的倆種方式都是可以實現(xiàn)的,只是第一種可以很方便的對任意一個值進行管理,第二種是改一個都得改一次,看業(yè)務場景,定時刷新就行。

      2. hash類型

      2-1 hash類型數(shù)據(jù)的基本操作

      添加 / 修改數(shù)據(jù):hset key field value

      獲取數(shù)據(jù):hget key field | hgetall key

      刪除數(shù)據(jù):hdel key field field1

      添加 / 修改多個數(shù)據(jù):hmset key field value field1 value1

      獲取多個數(shù)據(jù):hmget key field field1

      獲取表中字段數(shù)量:hlen key

      獲取表中是否存在某個字段:hexists key field

      2-2 hash類型數(shù)據(jù)的擴展操作

      獲取hash表中所有的字段值:hkeys key

      獲取hash表中所有的字段值:hvals key

      設置指定字段的數(shù)值增加指定范圍的值:hincrby key field increment | hincrbyfloat key field increment

      2-3 hash業(yè)務場景之購物車

      此圖來源于網絡非自制,只是模擬購物車場景
      一文搞定Redis五大數(shù)據(jù)類型及應用場景
      在上圖中,我們可以看到購物車里的信息,下來咱們使用redis來對這個購物車的實現(xiàn)。

      這里實現(xiàn)了一個添加購物車和獲取購物車,keys的命名為 表名+主鍵+主鍵值
      一文搞定Redis五大數(shù)據(jù)類型及應用場景
      在上圖中,我們會有一個問題就是商品信息存儲會大量重復,所有我們也需要將商品單獨給一直hash。如下圖,只存儲商品id
      一文搞定Redis五大數(shù)據(jù)類型及應用場景
      這里提供了倆種設置方式,一種是設置多個字段,一種是直接存儲為json。信息不經常變動的話可以使用json
      一文搞定Redis五大數(shù)據(jù)類型及應用場景
      給大家在提供一個方法hsetnx key field value,如果有則不進行添加,沒有則添加。這個功能就使用在不同的用戶添加同樣的商品時不會執(zhí)行覆蓋和無用操作
      一文搞定Redis五大數(shù)據(jù)類型及應用場景

      3. list類型

      數(shù)據(jù)存儲需求:存儲多個數(shù)據(jù),并對數(shù)據(jù)進行存儲空間的順序進行區(qū)分
      需要的數(shù)據(jù)結構:一個存儲空間保存多個數(shù)據(jù),且通過數(shù)據(jù)可以體現(xiàn)進入順序
      list類型:保存多個數(shù)據(jù),底層使用雙向鏈表存儲結構實現(xiàn)

      3-1 list類型數(shù)據(jù)的基本操作

      添加 / 修改數(shù)據(jù):lpush key value value1 | rpush key value value1

      獲取數(shù)據(jù):lrange key start end | lindex key index | llen key

      刪除數(shù)據(jù):rpop key | lpop key

      一文搞定Redis五大數(shù)據(jù)類型及應用場景

      3-2 list類型數(shù)據(jù)的擴展操作

      在規(guī)定時間內獲取并移除數(shù)據(jù):blpop key1 key2 timeout | brpop key1 key2 timeout

      這個功能簡單的寫一個案例,容易理解

      左邊這個終端指令執(zhí)行后會等待30秒的時間返回刪除的數(shù)據(jù)

      當右邊的添加指令執(zhí)行后左邊會直接返回返回刪除的數(shù)據(jù)
      一文搞定Redis五大數(shù)據(jù)類型及應用場景

      3-3 list業(yè)務場景

      在上邊我們知道了list的基礎操作 執(zhí)行 lpop key 或者 rpop key可以從做或者從右進行刪除,但是現(xiàn)在有個場景是朋友圈點贊業(yè)務,然后從中間取消數(shù)據(jù)。案例如下圖

      我們先往list5里邊添加 a b c d
      然后移除c
      在查看就剩下a b d了
      一文搞定Redis五大數(shù)據(jù)類型及應用場景

      4. set類型

      新的存儲需求:存儲大量的數(shù)據(jù),在查詢方便提供更高的效率
      需要的存儲結構:能夠保存大量的數(shù)據(jù),高效的內部存儲機制,便于查詢
      set類型:與hash存儲結構完全相同,僅存儲鍵,不存儲值(nil),并且值是不允許重復的

      一文搞定Redis五大數(shù)據(jù)類型及應用場景

      4-1 set類型數(shù)據(jù)的基本操作

      添加 / 修改數(shù)據(jù):sadd key member member1

      獲取數(shù)據(jù):smembers key

      刪除數(shù)據(jù):srem key member1

      獲取集合數(shù)據(jù)總量:scard key

      判斷集合中是否包含指定數(shù)據(jù):sismember key member

      一文搞定Redis五大數(shù)據(jù)類型及應用場景

      4-2 set類型數(shù)據(jù)擴展操作

      隨機獲取集合中指定數(shù)量的數(shù)據(jù):srandmember key count

      隨機獲取集合中某個數(shù)據(jù)并將改數(shù)據(jù)集移除集合:spop key

      4-3 set類型業(yè)務場景推薦信息

      隨機推送熱點信息、熱點新聞、熱賣旅游、應用app推薦、關注推薦等

      由于最近咔咔在寫discuz,這個案例就以實現(xiàn)關注推薦。

      案例一:根據(jù)一定的推薦機制往set里邊存放對應的用戶,然后每次進行隨機獲取2位需要推薦的用戶

      一文搞定Redis五大數(shù)據(jù)類型及應用場景

      案例二:根據(jù)一定的推薦機制往set里邊存放對應的用戶,然后根據(jù)日期每天推薦的用戶都不能重復

      一文搞定Redis五大數(shù)據(jù)類型及應用場景

      4-4 set類型業(yè)務場景挖掘用戶關系

      倆個集合的交、并、差集

      sinter key key1 sunion key key1 sdiff key key1

      倆個集合的交、并、差集并存儲到指定集合中

      sinterstore destination key1 key2 sunionstore destination key1 key2 sdiffstore destination key1 key2

      一文搞定Redis五大數(shù)據(jù)類型及應用場景
      案例:我們需要挖掘一個信息的共同好友。例如微信公眾號的共同關注好友數(shù)量、QQ添加新好友的推薦機制、深度挖掘用戶直接的聯(lián)系

      就根據(jù)上述案例,我們可以使用差集來實現(xiàn)qq的有可能認識的好友。

      4-5 set類型業(yè)務場景 實現(xiàn)網站的PV UV IP的記錄

      PV直接使用string類型的incr統(tǒng)計即可

      UV和IP都是獨立不重復的,使用set來操作。

      在上邊我們知道set有一個特性就是不能重復,我們就可以根據(jù)這一點來輕松實現(xiàn)這個功能。然后使用scard key 來統(tǒng)計數(shù)量。

      至于UV是獨立訪客,使用本地的cookie來實現(xiàn)就可以,方法一樣把cookie傳給redis做記錄即可
      一文搞定Redis五大數(shù)據(jù)類型及應用場景

      5. sorted_set類型

      在之前的四個類型中都不支持排序的,下來咱們看的sorted_set類型是既支持存儲大數(shù)據(jù),也支持排序功能

      5-1. sorted_set類型基本操作

      添加數(shù)據(jù):zadd key score member

      獲取數(shù)據(jù):zrange key start stop | zrevrange key start stop

      刪除數(shù)據(jù):zrem key member

      一文搞定Redis五大數(shù)據(jù)類型及應用場景
      按條件獲取數(shù)據(jù):zrangebyscore key min max limit | zrevrangescore key max min

      條件刪除數(shù)據(jù):zremrangebyrank key start stop | zremrangebyscore key min max

      獲取集合數(shù)據(jù)總量:zcard key | zcount key min max

      集合交、并操作:zinterstore destination numkeys key | zunionstore destination numkeys key(這個指令就不做演示了,可以自己查看文檔。跟set有點類似,只不過會把所有交集的和給加起來。然后這里邊有個numkeys這個參數(shù)是一共幾個key進行計算 后邊的key就需要幾個)

      獲取數(shù)據(jù)對應的索引:zrank key member | zrevrank key member

      socre值獲取與修改:zscore key member | zincrby key increment member

      總結

      贊(0)
      分享到: 更多 (0)
      網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號