「这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战」
业务数据的特殊性:
- 原始业务功能设计
秒杀
618活动
双11活动
排队购票
- 运营平台监控到的突变高频访问数据
突发时政要闻,被强势关注围观
- 高频、复杂的统计数据
在线人数
投票排行榜
Redis 数据类型(5种常用) string hash list set sorted_set/zset (应用性较低)
小节: 业务数据 Redis 数据类型(5种)
Redis 数据存储格式
redis自身是一个Map,其中所有的数据都是采用key:value的形式存储
String类型:
存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
存储数据的格式:一个存储空间保存一个数据。
存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用
string类型数据的基本操作:
添加/修改数据
set key value
获取数据
get key
删除数据
del key
判断性添加数据
setnx key value
string类型 数据的基本操作
添加/修改 多个数据
mset key1 value1 key2 value2
获取多个数据
mget key1 key2
获取 数据字符个数 (字符串长度)
strlen key
追加信息到原始信息后部
append key value
string 类型数据的扩展操作
设置数值数据增加指定范围的值
设置数值数据减少指定范围的值
设置数据具有指定的生命周期
String 类型数据的扩展操作
设置数值数据增加 指定范围的值
incr key
incrby key increment
incrbyfloat key increment
设置数值数据减少指定范围的值
decr key
decrby key increment
设置数据具有指定的生命周期
setex key seconds value
psetex key milliseconds value
string 类型数据操作的注意事项
数据存储的困惑
对象类数据的存储如果具有较频繁的更新需求操作会显得笨重。
hash 类型:
新的存储需求:对一些列存储的数据进行编组,方便管理,典型应用存储对象信息
需要的存储结构: 一个存储空间 保存多个键值对数据。
hash类型: 底层使用哈希表结构实现数据存储。
hash 类型数据的基本操作。
添加/修改数据
hset key field value
获取数据
hget key field
hgetall key
删除数据
hdel key field1 [field2]
设置field的值,如果该field存在则不做任何操作。
hsetnx key field value
hash 类型数据扩展操作
hash 类型数据操作的注意事项
-
hash 类型中value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象,如果数据未获取到,对应的值为nil
-
hgetall 操作可以获取全部属性,如果内部field过多,遍历整体数据效率就会低,有可能成为数据访问的瓶颈。