一、redis 数据存储格式
1.redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储。
2.数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串。
二、string 类型数据存储
1.存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型。
2.存储数据的格式:一个存储空间保存一个数据。
3.存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用。
三、string类型数据的基本操作
1.添加/修改数据: set key value
2.获取数据: get key
3.删除数据: del key
4.添加/修改多个数据: set key1 value1 key2 value2 …
5.获取多个数据: get key1 key2 …
6.获取数据字符个数(字符串长度): strlen key
7.追加信息到原始信息后部(如果原始信息存在就追加,否则新建): append key value
四、string类型数据的扩展操作
1.设置数值数据增加指定范围的值
a. incr key (加1)
b. incrby key increment (根据命令加或者减)
c. incrbyfloat key increment (执行小数操作)
2.设置数值数据减少指定范围的值
a. decr key
b. decrby key increment
3.设置数据具有指定的生命周期
a. setex key seconds value(设置一个数据,它的有效时间为seconds秒)
b. psetex key milliseconds value (设置一个数据,它的有效时间为milliseconds毫秒)
注:redis 控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作
4.扩展操作小结:(string 作为数值操作)
1.string在redis内部存储默认就是一个字符串,当遇到增减类操作incr,decr时会转成数值型进行计算。
2.redis所有的操作都是原子性的,采用单线程处理所有业务,命令是一个一个执行的,因此无需考虑并发 带来的数据影响。
3.按数值进行操作的数据,如果原始数据不能转成数值,或超越了redis 数值上限范围,将报错。 9223372036854775807(java中long型数据最大值,Long.MAX_VALUE)
五、string 类型数据操作的注意事项
1.表示运行结果是否成功
a. (integer) 0 → false 失败
b. (integer) 1 → true 成功
2.表示运行结果值
a.(integer) 3 → 3 3个
b. (integer) 1 → 1 1个
3.数据未获取到 (nil)等同于null
4.数据最大存储量 512MB
5.数值计算最大范围(java中的long的最大值) 9223372036854775807
六、string 类型应用场景
1.redis应用于各种结构型和非结构型高热度数据访问加速。
模拟热点数据存储:某明星id为001的主页粉丝为10w、文章1000、关注500
方式一:
方式二:json串格式保存对象
七、key 的设置约定
数据库中的热点数据key命名惯例
表名 :主键名:主键值 :字段名
eg: order : id : 29437595 : name
eg: equip : id : 390472345 : type
eg: news : id : 202004150 : title