Redis 笔记(03)— string类型(设置key、获取key、设置过期时间、批量设置获取key、对key进行加减、对key值进行追加、获取value子串)
生活随笔
收集整理的這篇文章主要介紹了
Redis 笔记(03)— string类型(设置key、获取key、设置过期时间、批量设置获取key、对key进行加减、对key值进行追加、获取value子串)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
字符串 string 是 Redis 最簡單的數據結構。Redis 所有的數據結構都是以唯一的 key 字符串作為名稱,然后通過這個唯一 key 值來獲取相應的 value 數據。不同類型的數據結構的差異就在于 value 的結構不一樣。
Redis 的字符串是動態字符串,是可以修改的字符串,內部結構實現上類似于 Java 的 ArrayList,采用預分配冗余空間的方式來減少內存的頻繁分配,
如圖中所示,內部為當前字符串實際分配的空間 capacity 一般要高于實際字符串長度 len。當字符串長度小于 1M 時,擴容都是加倍現有的空間,如果超過 1M,擴容時一次只會多擴 1M 的空間。需要注意的是字符串最大長度為 512M。
1. string 類型相關命令
| 命令 | 說明 |
|---|---|
| set key value | 設置key對應值為string類型的value |
| setex key seconds value | 設置key對應值為string類型的value,增加到期時間 |
| mset key1 value1…keyN valueN | 一次設置多個key的值 |
| mget key1 …keyN | 一次獲取多個key的值 |
| incr key | 對key的值++操作,并返回新值 |
| decr key | 同上,但是做的是–操作 |
| incrby key integer | 同incr,加指定值 |
| decrby key integer | 同desr,減指定值 |
| incrbyfloat key increment | 對key的值增加一個浮點數 |
| append key value | 給指定key的字符串追加value |
| substr key start end | 返回截取過的key的字符串值 |
| getrange key start end | 獲取存儲在key上的值的一個子字符串 |
| setrange key offset value | 將從start偏移量開始的子串設置指定的值 |
2. 使用示例
- 鍵值對
可以對 key 設置過期時間,到點自動刪除,這個功能常用來控制緩存的失效時間。
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set a "this is a string type"
OK
127.0.0.1:6379> setex tmp 5 "tmp"
OK
127.0.0.1:6379> ttl tmp
(integer) 1
127.0.0.1:6379> ttl tmp
(integer) -2
127.0.0.1:6379> ttl tmp
(integer) -2
127.0.0.1:6379> keys *
1) "a"
- 批量鍵值對,節省網絡耗時開銷
127.0.0.1:6379> mset b "this is second string" c "third string" d "fourth string"
OK
127.0.0.1:6379> keys *
1) "c"
2) "b"
3) "a"
4) "d"
127.0.0.1:6379> mget a b c d
1) "this is a string type"
2) "this is second string"
3) "third string"
4) "fourth string"
- 計數
如果value值是一個整數,還可以對它進行自增操作。自增是有范圍的,它的范圍是signed long的最大最小值,超過了這個值,Redis會報錯。
127.0.0.1:6379> incr a
(error) ERR value is not an integer or out of range
127.0.0.1:6379> set num 1
OK
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> get num
"2"
127.0.0.1:6379> decr num
(integer) 1
127.0.0.1:6379> get num
"1"
127.0.0.1:6379> incrby num 10
(integer) 11
127.0.0.1:6379> get num
"11"
127.0.0.1:6379> decrby num 2
(integer) 9
127.0.0.1:6379> get num
"9"
127.0.0.1:6379> incrbyfloat num 0.2
"9.2"
127.0.0.1:6379> get num
"9.2"
127.0.0.1:6379> get a
"this is a string type"
127.0.0.1:6379> append a ", first string"
(integer) 35
127.0.0.1:6379> get a
"this is a string type, first string"
127.0.0.1:6379> substr a 23 -1
"first string"
127.0.0.1:6379> getrange a 23 -1
"first string"
127.0.0.1:6379> get d
"fourth string"
127.0.0.1:6379> setrange d 7 "china"
(integer) 13
127.0.0.1:6379> get d
"fourth chinag"
127.0.0.1:6379> setrange d 7 "chinese"
(integer) 14
127.0.0.1:6379> get d
"fourth chinese"
127.0.0.1:6379>
總結
以上是生活随笔為你收集整理的Redis 笔记(03)— string类型(设置key、获取key、设置过期时间、批量设置获取key、对key进行加减、对key值进行追加、获取value子串)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis 笔记(02)— keys 键
- 下一篇: Redis 笔记(04)— list类型