redis获取byte数组_《Redis深度历险》读书笔记
list/set/hash/zset 這四種數據結構是容器型數據結構:
1、create if not exists
2、drop if no elements
阻塞讀在隊列沒有數據的時候,會立即進入休眠狀態,一旦數據到來,則立刻醒過來。消息的延遲幾乎為零。用 blpop/brpop 替代前面的 lpop/rpop
位圖不是特殊的數據結構,它的內容其實就是普通的字符串,也就是 byte 數組。我們 可以使用普通的 get/set 直接獲取和設置整個位圖的內容,也可以使用位圖操作 getbit/setbit 等將 byte 數組看成「位數組」來處理。(用在比如用戶簽到的地方)
HyperLogLog 提供了兩個指令 pfadd 和 pfcount,根據字面意義很好理解,一個是增加 計數,一個是獲取計數。(用在比如UV)
當布隆過濾器說某個值存在時,這個值可能不存在;當它說不存在時,那就肯定不存在。
可以使用zset結構進行簡單限流,key為用戶的動作,score值為時間,只關注時間窗口內的行為
Redis 4.0 提供了一個限流 Redis 模塊,它叫 redis-cell。該模塊也使用了漏斗算法,并提供了原子的限流指令。
使用Geo計算地理相關的東西
如果你觀察到 Redis 的內存大起大落,這極有可能是因為大 key 導致的
使用scan來進行key相關的處理
在技術領域性能并不總 是一切,還有簡單性、易理解性和易實現性,這些都需要進行適當權衡。
Redis 使用操作系統的多進程 COW(Copy On Write) 機制來實現快照持久化
Redis 的 intset 是一個緊湊的整數數組結構,它用于存放元素都是整數的并且元素個數 較少的 set 集合,當集合對象的元素不斷增加,或者某個 value 值過大,這種小對象存儲也會 被升級為標準結構
增量同步:Redis 同步的是指令流,主節點會將那些對自己的狀態產生修改性影響的指令記錄在本 地的內存 buffer 中,然后異步將 buffer 中的指令同步到從節點,buffer是一個定長的環形數組,如果數組內容滿了就會從頭覆蓋前面的內容
可以將 Redis Sentinel 集群看成是一個 ZooKeeper 集群,一般由3-5個節點組成,客戶端來連接集群時,會首先連接sentinel,通過它來查詢主節點的地址,當主節點發生故障時,客戶端會重新獲取地址
Redis Cluster 將所有數據劃分為 16384 的 slots,每個節點負責其中一部分槽位,槽位的信息存儲于每個節點中,客戶端為了可以直接定位某個具體的key所在的節點,它就需要緩存槽位相關信息
因為 Redlock 需要向多個節點進行讀 寫,意味著相比單實例 Redis 性能會下降一些
如果有大批量的 key 過期,要給過期時間設置 一個隨機范圍,而不能全部在同一時間過期
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的redis获取byte数组_《Redis深度历险》读书笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stm32 中bootloader、st
- 下一篇: 汇编指令汇集