String字符串类型详解

String字符串类型详解

追加与获取长度

127.0.0.1:6379[3]> keys * # 查询所有key
1) "age"
127.0.0.1:6379[3]> set name oh # 设置key
OK
127.0.0.1:6379[3]> get name # 获取name的值
"oh"
127.0.0.1:6379[3]> append name mydream # 在name值后面追加,如果该key不存在,就相当于创建key
(integer) 9
127.0.0.1:6379[3]> get  name
"ohmydream"
127.0.0.1:6379[3]> strlen name # 获取字符串长度
(integer) 9

自增自减与

127.0.0.1:6379[3]> set views 0 
OK
127.0.0.1:6379[3]> incr views # views 值自增
(integer) 1
127.0.0.1:6379[3]> incr views 
(integer) 2
127.0.0.1:6379[3]> decr views # views 值自减
(integer) 1
127.0.0.1:6379[3]> decr views
(integer) 0
127.0.0.1:6379[3]> incrby views 10 # views 值增加一定步长
(integer) 10
127.0.0.1:6379[3]> decrby views 10 # views 值减少一定步长
(integer) 0

更改指定范围字符串

127.0.0.1:6379[3]> getrange name 0 3 # name 获取0-3下标之间的值
"ohmy"
127.0.0.1:6379[3]> set key2 abcdefgh 
OK
127.0.0.1:6379[3]> get key2 #
"abcdefgh"
127.0.0.1:6379[3]> setrange key2 0 xx # name 设置0开始的下标之间的值
(integer) 8
127.0.0.1:6379[3]> get key2
"xxcdefgh"

setex和setnx

# setex (set with expire) 设置超时配置
# setnx (set if not exists) 如果不存在设置,分布式锁中会常使用
127.0.0.1:6379[3]> setex key10 100 hello # 设置key10的值为hello,有效时间为100s
OK
127.0.0.1:6379[3]> ttl key10 # time to live 查询剩余存活时间
(integer) 88
127.0.0.1:6379[3]> ttl key10
(integer) 85
127.0.0.1:6379[3]> get key10
"hello"
127.0.0.1:6379[3]> setnx key100 100 # 如果key100不存在设置其值为100,否则不设置
(integer) 1 # 返回1说明设置成功,返回0说明设置未生效
127.0.0.1:6379[3]> get key100
"100"

批量操作

# mset 批量插入
# mget 批量获取

127.0.0.1:6379[3]> mset k1 v1 k2 v2 k3 v3 # 同时设置多个值
OK
127.0.0.1:6379[3]> keys *
1) "k3"
2) "k2"
3) "k1"
127.0.0.1:6379[3]> mget k1 k2 # 同时获取多个值
1) "v1"
2) "v2"
127.0.0.1:6379[3]> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379[3]> mget k1 k2 k3 k4
1) "v1"
2) "v2"
3) "v3"
4) (nil)
127.0.0.1:6379[3]> msetnx k1 k10 k4 v4 # 不存在设置,只有全为1才为1,不能有的设置成功,有的设置不成功,是一个原子性操作
(integer) 0
127.0.0.1:6379[3]> keys *
1) "k3"
2) "k2"
3) "k1"

设置对象

127.0.0.1:6379[3]> set user:1 {name:zhangsan,age:2} # 设置user1 对象
OK
127.0.0.1:6379[3]> keys *
1) "user:1"
127.0.0.1:6379[3]> mset user:2:name lisi user:2:age 3 # 设置user2 对象
OK
127.0.0.1:6379[3]> keys *
1) "user:2:age"
2) "user:2:name"
3) "user:1"

getset

# getset key value   如果key不存在就设置为value,返回null;如果存在就设置值为value,返回原来的值
127.0.0.1:6379[3]> getset db redis
(nil)
127.0.0.1:6379[3]> get db
"redis"
127.0.0.1:6379[3]> get db
"redis"
127.0.0.1:6379[3]> getset db mongodb
"redis"

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

  • 计数器
  • 统计多单位的数量
上一篇:熟悉scrapy的基本使用(创建与运行,目录结构)---爬虫项目


下一篇:学习Java的第一天,认识常用的Dos命令