Redis 数据类型及其使用场景 String 篇
String类型的基本操作
- 添加/修改数据
set key value
127.0.0.1:6379> set name zhangsan
OK
- 获取数据
get key
127.0.0.1:6379> get name
"zhangsan"
- 删除数据
127.0.0.1:6379> del name
(integer) 1
- 添加修改多个数据
mset name zhangsan age 20
- 获取多个数据
127.0.0.1:6379> mget name age
1) "zhangsan"
2) "20"
- 获取数据字符个数
127.0.0.1:6379> strlen name
(integer) 8
- 在数据后面追加信息(存在就追加,不存在就创建)
127.0.0.1:6379> append name hehe
(integer) 12
127.0.0.1:6379> get name
"zhangsanhehe"
127.0.0.1:6379>
String类型的扩展操作
随着应用运行中,我们的数据量会越来越大,我们不能让数据都在一张表里面,这样会影响数据库的查询效率,这个时候我们就需要把一张大表切割成多张小表,这就是在大中型应用中使用的基本操作,分表。但是将一张表分成多个表之后让它们自己控制自己的主键id自增肯定是不行的,比如会出现多个重复id的数据,这个时候可以使用redis来解决id重复的问题。
解决方案
设置数据增加指定的值
127.0.0.1:6379> set number 1 OK 127.0.0.1:6379> incr number (integer) 2 127.0.0.1:6379>
string在redis内部存储默认是一个字符串,当遇到增/减,如incr/decr 等操作时会转换成数值进行运算,redis的所有操作都是原子性的,采用单线程执行所有任务,命令都是一个个执行的,无需考虑并发带来的影响
应用场景: 1.微信投票限制每个号码在10小时内只能投一次票。2.热门商品维持三天热门自动取消热门。
解决方案
- 设置数据的生命周期
Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。
SETEX KEY_NAME TIMEOUT VALUE
127.0.0.1:6379> setex tel 60 13888888888
OK
127.0.0.1:6379> get tel
"13888888888"
127.0.0.1:6379> get tel //等待60s
(nil)
127.0.0.1:6379>
本作品采用《CC 协议》,转载必须注明作者和本文链接