004_Redis的String数据类型
1. String類型是包含很多種數據類型的特殊類型, 并且是二進制安全的。比如: 序列化的對象進行存儲, 比如: 一張圖片進行二進制存儲, 比如: 一個簡單的字符串, 數值等等。string類型的值最大能存儲512MB。
2. 設置字符串
2.1. 語法: set key value。
2.2. set命令用于設置給定key的值。如果key已經存儲其他值, set就覆寫舊值, 且無視類型。
2.3. 如果字符串有空格需要加上引號。如果沒有空格也可以不加引號。
2.4. set在設置操作成功完成時, 返回OK。
2.5. 實例
3. 獲取字符串
3.1. 語法: get key。
3.2. get命令用于獲取指定key的值。如果key不存在, 返回nil。如果key儲存的值不是字符串類型, 返回一個錯誤。
4. 設置key不存在的字符串
4.1. 語法: setnx key value。
4.2. setnx(set if not exists)命令在指定的key不存在時為key設置指定的值。如果key已經存在, 設置失敗。
4.3. 設置成功, 返回1。設置失敗, 返回0。
4.4. 實例
5. 設置字符串同時設置過期時間
5.1. 語法: setex key seconds value。
5.2. setex命令為指定的key設置值及其過期時間, 過期時間以秒為單位。如果key已經存在, setex命令將會替換舊的值。
5.3. 設置成功時返回OK。
5.4. 過期查詢返回nil, 這個key也不存在了。
5.5. 實例
6. 替換字符串
6.1. 語法: getset key value。
6.2. getset命令用于設置指定key的值, 并返回key的舊值。當key沒有舊值時, 即key不存在時, 返回nil(這個時候就相當于設置了一個新key)。當key存在但不是字符串類型時, 返回一個錯誤。
7. 從指定位置替換字符串
7.1. 語法: setrange key offset value。
7.2. setrange命令用指定的字符串覆蓋給定key所儲存的字符串值, 覆蓋的位置從偏移量offset(字節數)開始, offset從0開始計數。如果起始位置超過字符串長度, 多出的位置用空格替換。offset必須大于等于0。
7.3. 返回被修改后的字符串長度。
7.4. 實例
8. 同時設置多個字符串
8.1. 語法: mset key value [key value ...]。
8.2. mset命令用于同時設置一個或多個key-value對。
8.3. 總是返回OK。
8.4. 實例
9. 同時設置一個或多個key不存在的字符串
9.1. 語法: msetnx key value [key value ...]。
9.2. 同時設置一個或多個key-value對, 當且僅當所有給定key都不存在時才能設置成功, 反之失敗。
9.3. 當所有key都成功設置, 返回1, 反之返回0。
9.4. 實例
10. 設置字符串同時設置過期時間
10.1. 語法: psetex key milliseconds value。
10.2. psetex命令和setex命令相似, 但它以毫秒為單位設置key的生存時間, 而不是像setex命令那樣, 以秒為單位。如果key已經存在, setex命令將會替換舊的值。
10.3. 設置成功時返回OK。
10.4. 實例
11. 獲取一個或多個給定key的字符串值
11.1. 語法: mget key1 [key2..]。
11.2. mget命令返回一個或多個給定key的字符串值。如果給定的key里面, 有某個key不存在, 那么這個key返回特殊值nil。
11.3. 返回一個包含所有給定key的值的列表。
11.4. 實例
12. 將key中儲存的整形數字增一
12.1. 語法: incr key。
12.2. incr命令將key中儲存的整形數字增一。如果key不存在, 那么key的值會先被初始化為0, 然后再執行incr操作。如果值包含錯誤的類型或字符串類型的值不能表示為整形數字, 那么返回一個錯誤。本操作的值限制在64位(bit)有符號整形數字表示之內。
12.3. 返回執行incr命令之后key的值。
12.4. 實例
13. 將key中儲存的整形數字加上給定的增量值
13.1. 語法: incrby key increment。
13.2. incrby命令將key中儲存的整形數字加上指定的增量值。增量也可以為負數, 相當于對指定字段進行減法操作。如果key不存在, 那么key的值會先被初始化為0, 然后再執行incrby命令。如果值包含錯誤的類型或字符串類型的值不能表示為整形數字, 那么返回一個錯誤。本操作的值限制在64位(bit)有符號整形數字表示之內。
13.3. 返回加上指定的增量值之后, key的值。
13.4. 實例
14.?將key所儲存的數字加上給定的浮點增量值
14.1. 語法: incrbyfloat key increment。
14.2. incrbyfloat命令為key中所儲存的數字加上指定的浮點數增量值。增量也可以為負數, 相當于對指定字段進行減法操作。如果key不存在, 那么incrbyfloat會先將key的值設為0, 再執行加法操作。如果值包含錯誤的類型或字符串類型的值不能表示為數字, 那么返回一個錯誤。
14.3. 返回執行命令之后key的值。
14.4. 實例
15.?將key中儲存的整形數字值減一
15.1. 語法: decr key。
15.2. decr命令將key中儲存的整形數字值減一。如果key不存在, 那么key的值會先被初始化為0, 然后再執行decr操作。如果值包含錯誤的類型或字符串類型的值不能表示為整形數字, 那么返回一個錯誤。本操作的值限制在64位(bit)有符號整形數字表示之內。
15.3. 返回執行命令之后key的值。
15.4. 實例
16.?將key所儲存的整形數字減去給定的減量值
16.1. 語法: decrby key decrement。
16.2. decrby命令將key所儲存的整形數字減去指定的減量值。減量也可以為負數, 相當于對指定字段進行加法操作。如果key不存在, 那么key的值會先被初始化為0, 然后再執行decrby操作。如果值包含錯誤的類型或字符串類型的值不能表示為整形數字, 那么返回一個錯誤。本操作的值限制在64位(bit)有符號整形數字表示之內。
16.3. 減去指定減量值之后key的值。
16.4. 實例
17.?追加字符串
17.1. 語法: append key value。
17.2. append命令用于為指定的key追加值。如果key已經存在并且是一個字符串, append命令將value追加到key原來的值的末尾。如果key不存在, append就簡單地將給定key設為value, 就像執行set key value一樣。
17.3. 返回追加指定值之后key中字符串的長度。
17.4. 實例
18.?獲取字符串值的長度
18.1. 語法: strlen key。
18.2. strlen命令用于獲取指定key所儲存的字符串值的字節數。當key儲存的不是字符串值時, 返回一個錯誤。
18.3. 返回字符串值的字節數。當key不存在時返回0。
18.4. 實例
19. 返回key中字符串值的子字符
19.1. 語法: getrange key start end。
19.2. getrange命令用于獲取存儲在指定key中字符串的子字符串。字符串的截取范圍由start(字節數)和end兩個偏移量決定(包括start和end在內)。start和end是從0開始計數的。如果end超過了字符串字節數, 截取從起始位置起, 剩余的字符串。如果start或end為負數, 就用字節數加上這個負數, 換算成正數, 如果相加后的結果還為負值, 就直接取0。最終end要大于start才會有結果。
19.3. 返回截取得到的子字符串。
19.4. 實例
總結
以上是生活随笔為你收集整理的004_Redis的String数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 003_Redis配置
- 下一篇: 017_Jedis的String数据类型