Redis學習筆記 - 數據類型與API(2)String

Redis學習筆記 - 數據類型與API(2)String

String (字符串)

1. 使用場景

  • 緩存 (key-value、存儲json)
  • 分佈式鎖
  • 計數器
  • Bits

2. 經常使用命令

命令 含義 時間複雜度
set、get、del 設置、獲取、刪除key-value O(1)
setnx、set xx 根據key是否存在設置key-value O(1)
incr、decr、incrby、decrby、incrbyfloat 計數 O(1)
mget、mset 批量操做key-value O(N),N 爲給定 key 的數量
getset 爲key設置新值,並返回舊值 O(1)
append 將value追加到舊的value後 O(1)
strlen 返回字符串的長度 O(1)
setrange、getrange 設置、獲取字符串指定下標對應的值 O(1)

get、set、del

  • get key (獲取key對應的value)
  • set key value (設置key-value)
  • del key (刪除key-value)

incr、decr、incrby、decrby

  • incr key (key自增1,若是key不存在,自增後get(key)=1)
  • decr key (key自減1,若是key不存在,自增後get(key)=-1)
  • incrby key n (key自增n,若是key不存在,自增後get(key)=n)
  • decrby key n (key自減n,若是key不存在,自增後get(key)=-n)

set、setnx、set xx

  • set key value (無論key是否存在,都設置)
  • setnx key value (key不存在,才設置)
  • set key value xx (key存在,才設置)
127.0.0.1:6379> exists php
(integer) 0
127.0.0.1:6379> set php good
OK
127.0.0.1:6379> setnx php bad
(integer) 0
127.0.0.1:6379> set php best xx
OK
127.0.0.1:6379> get php
"best"
127.0.0.1:6379> exists java
(integer) 0
127.0.0.1:6379> setnx java best
(integer) 1
127.0.0.1:6379> exists lua
(integer) 0
127.0.0.1:6379> set lua hehe xx
(nil)

mget、mget

  • mget key1 key2 key3 ... (批量獲取key,原子操做)
  • mset key1 value1 key2 value2 key3 value3 ... (批量設置key-value)

getset、append、strlen

  • getset key newvalue (爲key設置新值,並返回舊值)
  • append key value (將value追加到舊的value後)
  • strlen key (返回字符串的長度(注意中文))
127.0.0.1:6379> get java
"best"
127.0.0.1:6379> getset java hello
"best"
127.0.0.1:6379> get java
"hello"
127.0.0.1:6379> append java world
(integer) 10
127.0.0.1:6379> get java
"helloworld"
127.0.0.1:6379> strlen java
(integer) 10

incrbyfloat、getrange、setrange

  • incrbyfloat key 3.5 (爲key對應的值增長3.5)
  • getrange key start end (獲取字符串指定下標全部的值)
  • setrange key index value (設置指定下標所對應的值)
127.0.0.1:6379> incr counter
(integer) 1
127.0.0.1:6379> incrbyfloat counter 1.1
"2.1"
127.0.0.1:6379> get counter
"2.1"
127.0.0.1:6379> set hello javabest
OK
127.0.0.1:6379> getrange hello 0 2
"jav"
127.0.0.1:6379> setrange hello 4 p
(integer) 8
127.0.0.1:6379> get hello
"javapest"

更多 String 相關命令http://www.redis.cn/commands....

3. 實戰

分佈式ID生成器

Redis分佈式ID生成器


相關內容:

Redis學習筆記 - 數據類型與API(1)Key
Redis學習筆記 - 數據類型與API(2)String
Redis學習筆記 - 數據類型與API(3)List
Redis學習筆記 - 數據類型與API(4)Set
Redis學習筆記 - 數據類型與API(5)Sorted Set
Redis學習筆記 - 數據類型與API(6)Hashphp

相關文章
相關標籤/搜索