超时时间 30s
```sh
127.0.0.1:6379> expire test2 30
(integer) 1
127.0.0.1:6379> ttl test2
(integer) 23
127.0.0.1:6379> ttl test2
(integer) 21
127.0.0.1:6379> ttl test2
(integer) 17
127.0.0.1:6379> ttl test2
(integer) 14
127.0.0.1:6379> ttl test2
(integer) 12
127.0.0.1:6379> ttl test2
(integer) 8
127.0.0.1:6379> ttl test2
(integer) 6
127.0.0.1:6379> ttl test2
(integer) 3
127.0.0.1:6379> ttl test2
(integer) -2
127.0.0.1:6379> ttl test2
(integer) -2
127.0.0.1:6379> exists test2
(integer) 0
127.0.0.1:6379>
```
setnx 判断是否存在,不存在才会set,防止错误的覆盖
```sh
127.0.0.1:6379> get test
"6"
127.0.0.1:6379> setnx test 2020
(integer) 0
127.0.0.1:6379> setnx test2 2020
(integer) 1
127.0.0.1:6379> get test
"6"
127.0.0.1:6379> get test2
"2020"
127.0.0.1:6379>
127.0.0.1:6379> set test2 77
OK
127.0.0.1:6379> get test2
"77"
```
```sh
➜ ~ redis-cli
127.0.0.1:6379> exists test
(integer) 0
127.0.0.1:6379> set test 3
OK
127.0.0.1:6379> get test
"3"
127.0.0.1:6379> incr test
(integer) 4
127.0.0.1:6379> get test
"4"
(integer) 3
127.0.0.1:6379> incrby test 3
(integer) 7
127.0.0.1:6379> get test
"7"
127.0.0.1:6379> incrby test -1
(integer) 6
127.0.0.1:6379> get test
"6"
127.0.0.1:6379>
```
ttl key返回值未-1表示永不过期,-2表示已过期,可用exists命令检查
incr key key 值增加1
incrby key num : key 增加 num ,num 可以是负数;
ttl key -2 key不存在
-1 key 永不过期
其他正整数, key存在的时间
setnx 当字符串不存在时候才赋值
127.0.0.1:6379> exists mycounter
(integer) 0
127.0.0.1:6379> set mycounter 99
OK
127.0.0.1:6379> get mycounter
"99"
127.0.0.1:6379> incr mycounter
(integer) 100
127.0.0.1:6379> get mycounter
"100"
127.0.0.1:6379> incrby mycounter 100
(integer) 200
127.0.0.1:6379> incrby mycounter -10
(integer) 190
127.0.0.1:6379> get mycounter
"190"
127.0.0.1:6379> setnx mycounter 99
(integer) 0
127.0.0.1:6379> setnx mycounter1 99
(integer) 1
127.0.0.1:6379> get mycounter1
"99"
127.0.0.1:6379> expire mycounter 100
(integer) 1
127.0.0.1:6379> ttl mycounter
(integer) 94
127.0.0.1:6379> ttl mycounter
(integer) 69
127.0.0.1:6379> ttl mycounter
(integer) -2
127.0.0.1:6379> existe mycounter
(error) ERR unknown command `existe`, with args beginning with: `mycounter`,
127.0.0.1:6379> exists mycounter
(integer) 0
127.0.0.1:6379> ttl mycounter1
(integer) -1
redis-cli 客户端连接 redis-server
exists mycounter
set mycounter 9
get mycounter
incr mycounter
incrby mycounter 2
incrby mycounter -2
setnx mycounter 检测key是否设置 ,不存在 进行设置 1,否则为0 设置不成功
expire mycounter 30 设置有效期为30S 生存时间
ttl mycounter 检查key剩余时间 -2 过期 -1 永不过期
Redis数量控制
setnx 判断是否存在 存在返回0 不存在则设置
场景::30秒后计数器失效
expire mycounter 30
ttl mycounter 存活时间
EXISTS mycounter查看是否仍然存在
Redis数量控制
设置计数器初始值为99
incr 增加1
incrby mycounter num 增加num
Redis之计数器:
a、查看key存在: exists key
计数器加一: incr key
计数器增加任一值 : incr key increment eg: incry mycount 2
带校验设置key : setnx mycount 99 //如果不存在mycount 成功,否则失败。成功返回1,失败返回0
设置key生存时间:expire mycount1 30 // (前提mycount1存在)设置mycount1 存在30秒,30秒后失去key,成功返回1
查看key 的生存时间 ttl mycount1 //返回-2表示key失效(ridis中不存在了),返回-1表示key永不失效