五大数据类型之String

88 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

String

EXISTS name 判断某个键是否存在
​
move name 1 (表示当前数据库)移除当前key
​
EXPIRE name 10      表示10秒后过期
​
ttl name 查看当前key的剩余时间
​
type 查看当前key的数据类型

image-20210224140257695.png

String

append  key "hello" 向key后面添加,如果当前key不存在相当于新建
​
strlen   key1    获得长度
​
incr key1 自动加一
​
网站浏览量
​
decr 自减一
​
INCRBY key 10 设置步长增量
​
#字符串范围
​
GETRANGE     key1   0    3 获取某个范围字符串
​
GETRANGE     key1   0    3   -1    获取全部字符串
​
#替换
​
SETRANGE key1    1 xx
#在分布式锁中经常使用
​
setex(set with expire) #设置过期时间
​
setnx(set if no exist ) #不存在设置
#如果当前key不存在直接设置失败#一次性设置多个key
mset k1 v1 k1 v3 k3 v3
#批量获取 mget
mget k1 k2 k3
#msetnx  原子性操作 一起成功一起失败
msetnx   
​
#对象
set user:1 {name:zhangsan,age:3} #设置一个user:1 对象 值为json
​
getset #先get再set
如果不存在则返回nil如果存在则返回并更新
​
​
​
​
​

存储对象

127.0.0.1:6379> clear
127.0.0.1:6379> mset user:1:name zhang user:1:age 2
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "zhang"
2) "2"
127.0.0.1:6379>

测试代码

127.0.0.1:6379> set key1 "hello"
OK
127.0.0.1:6379> get key1
"hello"
127.0.0.1:6379> append key1 " redis"
(integer) 11
127.0.0.1:6379> strlen key1
​
127.0.0.1:6379> get key1
"hello redis"
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> 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 99
(integer) 100
127.0.0.1:6379> get num
"100"
127.0.0.1:6379> DECRBY num 11
(integer) 89
127.0.0.1:6379> get num
"89"
127.0.0.1:6379> GETRANGE key1 0  4
"hello"
127.0.0.1:6379> setex key3 5 "abc"
OK
127.0.0.1:6379> get key3
"abc"
127.0.0.1:6379> get key3
(nil)
127.0.0.1:6379> setnx key4 "666"
(integer) 1
127.0.0.1:6379> get key4
"666"
127.0.0.1:6379> setnx key4 "123"
(integer) 0
127.0.0.1:6379> mset k1 "value1" k2 "value2" k3 "value3"
OK
127.0.0.1:6379> keys *
1) "key1"
2) "num"
3) "key2"
4) "k3"
5) "k1"
6) "key4"
7) "k2"
127.0.0.1:6379> mget k1 k2 k3
1) "value1"
2) "value2"
3) "value3"
127.0.0.1:6379> msetnx k5 "v5" k1 "v1"
(integer) 0
127.0.0.1:6379> getset k1 "v1"
"value1"
127.0.0.1:6379> get k1
"v1"

String 类型的使用场景:value除了字符串还可以是数字

计数器

统计多单位数量

粉丝数

对象缓存