redis-6.string类型
string类型
- 存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
- 存储数据的格式:一个存储空间保存一个数据
- 存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用
string类型数据的基本操作
- 添加/修改数据
set key value
- 获取数据
get key
- 删除数据
del key
- 添加/修改多个数据
mset key1 value1 key2 value2 ...
- 获取多个数据
mget key1 key2 ...
- 获取数据字符个数(字符串长度)
strlen key
- 追加信息到原始信息后部(如果原始信息存在就追加,否则就新建)
append key value
- set和mset的操作选择(主要是看业务和设置的条数来定,设置条数越多mset比set越好。条数的需要看它两的零界点)
string类型数据的扩展操作
业务场景
大型企业级应用中,分表操作是基本操作,使用多张表存储同类型数据,但是对应的主键id必须保证统一性,不能重复。Oracle数据库具有sequence设定,可以解决该问题,但是MySQL数据库并不具备类似的机制,那么如何解决?
解决方案 - 设置数值数据增加指定范围的值
incr key incrby key increment incrbyfloat key increment
- 设置数值数据减少指定范围的值
Tips1:decr key decrby key increment
- redis用于控制数据库主键id,为数据库表主键提供生成策略,保障数据库表的主键唯一性
- 此方案适用于所有数据库,且支持数据库集群
业务场景
“最强女生”启动海选投票,只能通过微信投票,每个微信号每4小时只能投1票。
电商商家开启热门商品推荐,热门商品不能一直处于热门期维持3天,3天后自动取消。
新闻网站会出现热点新闻,热点新闻最大的特征是时效性,如何自动控制热点新闻的时效性。
解决方案
- 设置数据具有指定的生命周期
Tips2:setex key seconds value psetex key milliseconds value
- redis控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作。
string类型数据操作的注意事项
- 数据操作不成功的反馈与数据正常操作之间的差异
①表示运行结果是否成功- (integer)0 → false 失败
- (integer)1 → true 成功
②表示运行结果值 - (integer)3 → 3个
- (integer)1 → 1个
- 数据未获取到
(nil)等同于null - 数据最大存储量
512MB - 数值计算最大返回(java中的long的最大值)
9223372036854775807(2^64-1)
本作品采用《CC 协议》,转载必须注明作者和本文链接
已阅