Redis系列二、redis的五种数据结构和相关指令之String
redis是一種基于鍵值對(key-value)的內存數據庫,redis數據結構可以分為string、hash、list、set、sorted set。本節中將介紹Redis支持的主要數據結構中的string,以及相關的常用Redis命令。
redis的五種數據結構和相關指令之String
字符串string
redis的字符串不限存儲格式,實際上可以是字符串(包括XML JSON),還有數字(整形 浮點數),二進制(圖片 音頻 視頻),最大不能超過512MB。
a、基本命令
SET:為一個key設置value,可以配合EX/PX參數指定key的有效期,通過NX/XX參數針對key是否存在的情況進行區別操作,時間復雜度O(1)
GET:獲取某個key對應的value,時間復雜度O(1)
GETSET:為一個key設置value,并返回該key的原value,時間復雜度O(1)
MSET:為多個key設置value,時間復雜度O(N)
MSETNX:同MSET,如果指定的key中有任意一個已存在,則不進行任何操作,時間復雜度O(N)
MGET:獲取多個key對應的value,時間復雜度O(N)
eg:
補充說明
帶“m”的批量指令能減少指令的網絡請求時間,提高效率。例如若沒有mget命令,則要執行n次get命令
使用mget=1次網絡請求+redis內部n次查詢
?
?
b、數值操作
當string的值為數值的時候就可以進行一些針對數值的增減操作:
incr age //必須為整數自加1,非整數返回錯誤,無age鍵從0自增返回1 decr age //整數age減1 incrby age 2 //整數age+2 decrby age 2//整數age -2 incrbyfloat score 1.1 //浮點型score+1.1
c、普通字符串操作
追加指令:
set name hello; append name world //追加后成helloworld字符串長度:
set hello “世界”;strlen hello//結果6,每個中文占3個字節截取字符串:
set name helloworld ; getrange name 2 4//返回 llo
d、key的使用技巧
不要使用過長的Key。例如使用一個1024字節的key就不是一個好主意,不僅會消耗更多的內存,還會導致查找的效率降低
Key短到缺失了可讀性也是不好的,例如”u1000flw”比起”user:1000:followers”來說,節省了寥寥的存儲空間,卻引發了可讀性和可維護性上的麻煩
最好使用統一的規范來設計Key,比如”object-type: id:attr”,以這一規范設計出的Key可能是”user:1000″或”comment: 1234:reply-to”
Redis允許的最大Key長度是512MB(對Value的長度限制也是512MB)
————————————————
版權聲明:本文為CSDN博主「lingengy」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/w1lgy/article/details/84376756
總結
以上是生活随笔為你收集整理的Redis系列二、redis的五种数据结构和相关指令之String的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JNDI概述
- 下一篇: Effective Java~42. L