[Redis6]常用数据类型_String字符串
Redis字符串(String)
簡介
- String是Redis最基本的類型,你可以理解成與Memcached一模一樣的類型,一個key對應一個value。
- String類型是二進制安全的。意味著Redis的string可以包含任何數據。比如jpg圖片或者序列化的對象。
- String類型是Redis最基本的數據類型,一個Redis中字符串value最多可以是512M
數據結構
String的數據結構為簡單動態字符串(Simple Dynamic String,縮寫SDS)。是可以修改的字符串,內部結構實現上類似于Java的ArrayList,采用預分配冗余空間的方式來減少內存的頻繁分配.
如圖中所示,內部為當前字符串實際分配的空間capacity一般要高于實際字符串長度len。當字符串長度小于1M時,擴容都是加倍現有的空間,如果超過1M,擴容時一次只會多擴1M的空間。需要注意的是字符串最大長度為512M。
常用命令
set [key][value] 添加鍵值對,如果對已經存在的鍵值對使用,則是修改
get [key] 查詢對應鍵值
append [key][value] 將給定的[value] 追加到原值的末尾
strlen [key] 獲得值的長度
setnx [key][value] 只有在 key 不存在時 設置 key 的值
incr [key]
將 key 中儲存的數字值增1
只能對數字值操作,如果為空,新增值為1
所謂原子操作是指不會被線程調度機制打斷的操作;
這種操作一旦開始,就一直運行到結束,中間不會有任何 context switch (切換到另一個線程)。
(1)在單線程中, 能夠在單條指令中完成的操作都可以認為是"原子操作",因為中斷只能發生于指令之間。
(2)在多線程中,不能被其它進程(線程)打斷的操作就叫原子操作。
Redis單命令的原子性主要得益于Redis的單線程。
decr [key]
將 key 中儲存的數字值減1
只能對數字值操作,如果為空,新增值為-1
incrby / decrby [key][步長] 將 key 中儲存的數字值增減。自定義步長。
mset [key1][value1][key2][value2] …
同時設置一個或多個 key-value對
mget [key1][key2][key3] …
同時獲取一個或多個 value
msetnx [key1][value1][key2][value2] …
同時設置一個或多個 key-value 對,當且僅當所有給定 key 都不存在。
原子性,有一個失敗則都失敗
getrange [key][起始位置][結束位置]
獲得值的范圍,類似java中的substring,前包,后包
setrange [key][起始位置][value]
用 覆寫所儲存的字符串值,從<起始位置>開始(索引從0開始)。
setex [key][過期時間][value]
設置鍵值的同時,設置過期時間,單位秒。
getset [key][value]
以新換舊,設置了新值同時獲得舊值。
總結
以上是生活随笔為你收集整理的[Redis6]常用数据类型_String字符串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读速 4850 MB/s:海康威视 2T
- 下一篇: Lumma 恶意软件曝光:恢复过期 co