redis字符串匹配_Redis的数据类型和抽象概念介绍
Redis 不是一個 簡單的 key-value 存儲,實際上它是一個數據結構服務器,它支持不同類型的值。也就是說,在傳統的key-value存儲中,你將一個字符串的key關聯到一個字符串的值上;而在Redis中,值不僅僅局限于簡單的字符串,還同時支持其他復雜的數據結構。以下的列表是所有Redis支持的數據結構,在這篇指南中將一一介紹:
- 二進制安全的字符串。
- 列表[Lists]: 按照插入順序排序的字符串元素集合。它們基于鏈表實現。
- 集合[Sets]: 唯一的、無序的字符串元素集合。
- 有序集合[Sorted sets]: 與集合類似,但是其中的每一個字符串元素都關聯了一個浮點數值,稱之為[score]。這些元素都是按照這個score來進行排序,所以它與集合不同,
- 它可以獲取一個元素范圍(比如你可以說:給我最上面的10條數據,或者最下面的10條數據)。
- 哈希[Hashes]: 由字段及相關聯的值組成的maps。字段和值都是字符串。這非常類似于Ruby或者Python中的哈希。
- 位數組(或者簡單的bitmaps): 它可以使用特殊的命令,將字符串值處理為一個位的數組:你可以設置或者清空個別的位,統計所有設置為1的位,查找第一個設置或者沒有設置的位等等。
- HyperLogLogs: 這是一個基于概率的數據結構,它用于估算一個集合中的基數。不用擔心,它沒有看起來那么難… 稍候會在后續的HyperLogLog章節中對其進行介紹。
這些數據類型如何工作,以及通過這些命令命令參考如何去解決已有的問題,通常并不是那么容易理解的。所以這篇文檔是關于Redis數據類型以及很多常見模式的一個速成教程。
所有的示例我們都將使用redis-cli 工具,它是一個簡單,易使用的命令行工具,用于向Redis服務器發送指令。
Redis 的key
Redis 的key是二進制安全的,也就是說你可以使用任何二進制的序列作為key,從一個”foo”字符串到一個JPEG文件的內容都可以??兆址餐瑯邮且粋€有效的key。
一些其他的關于key的規則:
- 使用非常長的key并不是好的主意,例如使用一個1024字節(bytes)長度的key就很爛,其不僅僅耗費內存,而且在數據集中查找這個key時也需要很高的比較成本。即使當前處理的任務是匹配存在的大值,采用哈希來處理(例如使用SHA1) 會是一個更好的主意,特別是從內存和帶寬的角度來看。
- 使用很短的key通常也不是一個好主意。將”u1000flw”作為一個key幾乎是毫無意義的,如果你可以將其替換成”user:1000:followers”,則它會更具可讀性,而由此增加的空間與key對象和值對象使用的空間比起來微乎其微。當簡短的key將明顯的消耗一小部分內存,你的工作就是尋找到一個正確的平衡點。
- 嘗試去堅持一個模式。例如使用”object-type:id”做為key就是一個好的想法,像”user:1000″。點或者虛線經常被用作多單詞字段的連接符,例如”comment:1234:reply.to”或”comment:1234:reply-to”。
- key最大可分配512MB。
Redis 的字符串類型[Strings]
Redis字符串類型是你能夠與一個Redis的key關聯的最簡單的值類型。它也是Memcached中唯一的數據類型,所以新手可以很自然的在Redis中使用它。
Redis的key是字符串的,我們同樣可以使用字符串類型來做為值,我們是將一個字符串映射到另一個字符串上。字符串數據類型在很多場景下是很有用的, 例如緩存HTML片段或者頁面。
關注我,后續更多干貨奉上
總結
以上是生活随笔為你收集整理的redis字符串匹配_Redis的数据类型和抽象概念介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 吻名画是谁画的呢?
- 下一篇: 更新pcb封装导入_教你如何将 AD 或