網(wǎng)絡(luò)管理系統(tǒng)設(shè)備seo優(yōu)化公司信
文章目錄
- Redis之String類型
- 1. 賦值/獲取值
- 2. 同時(shí)設(shè)置/獲取多個(gè)鍵值
- 3. 數(shù)值增減
- 4. 獲取字符串長(zhǎng)度
- 5. 向尾部追加值
- 6. 分布式鎖
- 7.應(yīng)用場(chǎng)景
Redis之String類型
Redis命令不區(qū)分大小寫
1. 賦值/獲取值
賦值:set key value
取值:get key (當(dāng)鍵不存在時(shí)候,會(huì)返回空結(jié)果)
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> get k2
(nil)
127.0.0.1:6379> keys *
1) "k1"
2. 同時(shí)設(shè)置/獲取多個(gè)鍵值
MSET/MGET
127.0.0.1:6379> keys *
1) "k1"
127.0.0.1:6379> mset k2 v2 k3 v3 k4 v4
OK
127.0.0.1:6379> mget k2 k3 k4
1) "v2"
2) "v3"
3) "v4"
127.0.0.1:6379> mget k1 k2
1) "v1"
2) "v2"
127.0.0.1:6379> mget k1 k2 k3 k4
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> mget k2 k3 k4 k5
1) "v2"
2) "v3"
3) "v4"
4) (nil)
3. 數(shù)值增減
- 遞增數(shù)值:INCR key
- 增加指定的整數(shù):INCRBY key increment
- 遞減數(shù)值:DECR key
- 減少指定的整數(shù):DECRBY key decrement
127.0.0.1:6379> incr user:1:article:01
(integer) 1
127.0.0.1:6379> incr user:1:article:01
(integer) 2
127.0.0.1:6379> incr user:1:article:01
(integer) 3
127.0.0.1:6379> get user:1:article:01
"3"
127.0.0.1:6379> decr user:1:article:01
(integer) 2
127.0.0.1:6379> get user:1:article:01
"2"
127.0.0.1:6379> incrby user:1:article:01 20
(integer) 22
127.0.0.1:6379> get user:1:article:01
"22"
127.0.0.1:6379> decrby user:1:article:01 10
(integer) 12
127.0.0.1:6379> get user:1:article:01
"12"
4. 獲取字符串長(zhǎng)度
STRLEN key
不存在的key返回0
127.0.0.1:6379> get user:1:article:01
"12"
127.0.0.1:6379> strlen user:1:article:01
(integer) 2
127.0.0.1:6379> strlen k1
(integer) 2
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> strlen name
(integer) 8
127.0.0.1:6379> strlen hh
(integer) 0
5. 向尾部追加值
APPEND key value
當(dāng)不存在key時(shí),相當(dāng)于新建了個(gè)key并把后面的值賦給這個(gè)key
127.0.0.1:6379> set say hello
OK
127.0.0.1:6379> get say
"hello"
127.0.0.1:6379> append say world
(integer) 10
127.0.0.1:6379> get say
"helloworld"
127.0.0.1:6379> append aaa hhh
(integer) 3
127.0.0.1:6379> get aaa
"hhh"
6. 分布式鎖
set key value [EX seconds] [PX milliseconds] [NX|XX]
- EX: key在多少秒之后過期
- PX: key在多少毫秒之后過期
- NX: 當(dāng)key不存在的時(shí)候,才創(chuàng)建key, 效果等同于setnx
- XX: 當(dāng)key存在的時(shí)候,覆蓋key
127.0.0.1:6379> set stock 10 ex 10
OK
127.0.0.1:6379> get stock
"10"
127.0.0.1:6379> ttl stock
(integer) 1
127.0.0.1:6379> get stock
(nil)
127.0.0.1:6379> get stock
(nil)
127.0.0.1:6379> set stock 10 ex 20 nx
OK
127.0.0.1:6379> get stock
"10"
127.0.0.1:6379> ttl stock
(integer) 12
127.0.0.1:6379> ttl stock
(integer) -2
127.0.0.1:6379> get stock
(nil)
127.0.0.1:6379> setnx k1 v1
(integer) 0
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> setnx k1 vv1
(integer) 0
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> setnx a1 vv1
(integer) 1
127.0.0.1:6379> get a1
"vv1"
7.應(yīng)用場(chǎng)景
- 商品編號(hào),訂單編號(hào),項(xiàng)目編號(hào)使用INCR生成
商品編號(hào),訂單編號(hào),項(xiàng)目編號(hào)等里面除了對(duì)應(yīng)位數(shù)上符合業(yè)務(wù)邏輯的規(guī)則,還會(huì)多余出幾位讓自增產(chǎn)生,這個(gè)自增如果每次去查上次生成最大的編號(hào),然后再取到再自增,性能會(huì)比較低,所以一般會(huì)把自增這幾位放在redis中,使用INCR命令來實(shí)現(xiàn),最后和別的符合業(yè)務(wù)規(guī)則的位拼接而成新的編號(hào)。XASDWEBX001,XASDWEBX002…
127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> get num
"1"
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> get num
"2"
- 公司內(nèi)網(wǎng)發(fā)文的文章,統(tǒng)計(jì)被員工閱讀次數(shù)
每個(gè)員工打開文章01時(shí)候就執(zhí)行 incr article:01,然后顯示閱讀次數(shù)是執(zhí)行g(shù)et article:01
127.0.0.1:6379> incr article:01
(integer) 1
127.0.0.1:6379> get article:01
"1"
127.0.0.1:6379> incr article:01
(integer) 2
127.0.0.1:6379> incr article:01
(integer) 3
127.0.0.1:6379> incr article:01
(integer) 4
127.0.0.1:6379> get article:01
"4"