redis資料型別及操作(一)Strings

2021-09-24 17:36:04 字數 4055 閱讀 1843

string 是最簡單的型別,你可以理解成與 memcached 是一模一樣的型別,乙個 key 對應乙個value,其上支援的操作與 memcached 的操作類似。但它的功能更豐富。

string 型別是二進位制安全的。意思是 redis 的 string 可以包含任何資料,比如 jpg 或者序列化的物件。從內部實現來看其實 string 可以看作 byte 陣列,最大上限是 1g 位元組。

redis 127.0.0.1:6379> set name hongwan

okredis 127.0.0.1:6379>

redis 127.0.0.1:6379> get name

"hongwan"

redis 127.0.0.1:6379> setnx name hongwan_new

(integer) 0

redis 127.0.0.1:6379> get name

"hongwan"

redis 127.0.0.1:6379>

redis 127.0.0.1:6379> setex haircolor 10 red

okredis 127.0.0.1:6379> get haircolor

"red"

redis 127.0.0.1:6379> get haircolor

(nil)

redis 127.0.0.1:6379>

redis 127.0.0.1:6379> get name

"[email protected]"

redis 127.0.0.1:6379> setrange name 8 gmail.com

(integer) 17

redis 127.0.0.1:6379> get name

"[email protected]"

redis 127.0.0.1:6379>

其中的 8 是指從下標為 8(包含 8)的字元開始替換

redis 127.0.0.1:6379> mset key1 hongwan1 key2 hongwan2

okredis 127.0.0.1:6379> get key1

"hongwan1"

redis 127.0.0.1:6379> get key2

"hongwan2"

redis 127.0.0.1:6379>

redis 127.0.0.1:6379> get key1

"hongwan1"

redis 127.0.0.1:6379> get key2

"hongwan2"

redis 127.0.0.1:6379> msetnx key2 hongwan2_new key3 hongwan3

(integer) 0

redis 127.0.0.1:6379> get key2

"hongwan2"

redis 127.0.0.1:6379> get key3

(nil)

redis 127.0.0.1:6379> get name

"hongwan"

redis 127.0.0.1:6379>

redis 127.0.0.1:6379> get name

"hongwan"

redis 127.0.0.1:6379> getset name hongwan_new

"hongwan"

redis 127.0.0.1:6379> get name

"hongwan_new"

redis 127.0.0.1:6379>

redis 127.0.0.1:6379> get name

"[email protected]"

redis 127.0.0.1:6379> getrange name 0 6

"hongwan"

redis 127.0.0.1:6379>

字串左面下標是從 0 開始的

redis 127.0.0.1:6379> getrange name -7 -1

"126.com"

redis 127.0.0.1:6379>

字串右面下標是從-1 開始的

redis 127.0.0.1:6379> getrange name 7 100

"@126.com"

redis 127.0.0.1:6379>

當下標超出字串長度時,將預設為是同方向的最大下標

redis 127.0.0.1:6379> mget key1 key2 key3

1) "hongwan1"

2) "hongwan2"

3) (nil)

redis 127.0.0.1:6379>

redis 127.0.0.1:6379> set age 20

okredis 127.0.0.1:6379> incr age

(integer) 21

redis 127.0.0.1:6379> get age

"21"

redis 127.0.0.1:6379>

redis 127.0.0.1:6379> get age

"21"

redis 127.0.0.1:6379> incrby age 5

(integer) 26

redis 127.0.0.1:6379> get name

"[email protected]"

redis 127.0.0.1:6379> get age

"26"

redis 127.0.0.1:6379>

edis 127.0.0.1:6379> get age

"26"

redis 127.0.0.1:6379> decr age

(integer) 25

redis 127.0.0.1:6379> get age

"25"

redis 127.0.0.1:6379>

redis 127.0.0.1:6379> get age

"25"

redis 127.0.0.1:6379> decrby age 5

(integer) 20

redis 127.0.0.1:6379> get age

"20"

redis 127.0.0.1:6379>

decrby 完全是為了可讀性,我們完全可以通過 incrby 乙個負值來實現同樣效果,反之一樣。

redis 127.0.0.1:6379> get age

"20"

redis 127.0.0.1:6379> incrby age -5

(integer) 15

redis 127.0.0.1:6379> get age

"15"

redis 127.0.0.1:6379>

(integer) 15

redis 127.0.0.1:6379> get name

"[email protected]"

redis 127.0.0.1:6379>

redis 127.0.0.1:6379> get name

"hongwan_new"

redis 127.0.0.1:6379> strlen name

(integer) 11

redis 127.0.0.1:6379> get age

"15"

redis 127.0.0.1:6379> strlen age

(integer) 2

redis 127.0.0.1:6379>

Redis資料型別及操作(二)

redis資料型別及操作 二 redis是key value的資料結構,每條資料都是乙個鍵值對 鍵的型別是字串,並且鍵是不能夠重複的 值的型別有string hash list set zset。查詢鍵 支援正規表示式 key patterns 檢視所有鍵 keys 檢視名稱中包含a的鍵 keys ...

Redis 資料型別及操作之 sets 型別

向名稱為 key 的 set 中新增元素。sadd myset value檢視 set 中的所有元素。smembers myset刪除名稱為 key 的 set 中的給定元素。srem myset value隨機返回並刪除名稱為 key 的 set 中乙個元素。spop myset返回第乙個 set...

redis基本操作及資料型別命令

資料型別 string 字串 list 鍊錶 hash 雜湊 set 集合 zsort 有序集合 預設16個資料庫,可通過配置檔案修改。基本操作 關於訪問中文顯示時是亂碼,解決辦法是啟動客戶端時加入 raw redis cli raw config set requirepass 123456 設定...