日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

[Redis6]常用数据类型_String字符串

發布時間:2023/12/4 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [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字符串的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。