02_redis 数据类型
数据存储类型介绍
业务数据的特殊性
(1) 作为缓存使用
(2)附加功能
系统功能优化或升级
- 单服务器升级集群
- Session 管理
- Token 管理
Redis 数据类型(5种常用)
redis |
java |
string |
String |
hash |
HashMap |
list |
LinkedList |
set |
HashSet |
sorted_set |
TreeSet |
string
redis 数据存储格式
- redis 自身是一个 Map,其中所有的数据都是采用** key : value** 的形式存储
- 数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串
string 类型
- 存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
- 存储数据的格式:一个存储空间保存一个数据
- 存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用
string 类型数据的基本操作
添加/修改数据
set key value
获取数据
get key
删除数据
del key
添加/修改多个数据
mset key1 value1 key2 value2 …
获取多个数据
mget key1 key2 …
获取数据字符个数(字符串长度)
strlen key
追加信息到原始信息后部(如果原始信息存在就追加,否则新建)
append key value
说明:mset 和 mget 其中m 为 Multiple[?m?lt?pl]
string 类型数据的基础操作
string 类型数据的扩展操作
业务场景
解决方案
设置数值数据增加指定范围的值
incr key
incrby key increment
incrbyfloat key increment
设置数值数据减少指定范围的值
decr key
decrby key increment
string 作为数值操作
- string在redis内部存储默认就是一个字符串,当遇到增减类操作incr,decr时会转成数值型进行计算。
- redis所有的操作都是原子性的,采用单线程处理所有业务,命令是一个一个执行的,因此无需考虑并发带来的数据影响。
- 注意:按数值进行操作的数据,如果原始数据不能转成数值,或超越了redis 数值上限范围,将报错。
9223372036854775807(java中long型数据最大值,Long.MAX_VALUE)
Tips 1:
- redis用于控制数据库表主键id,为数据库表主键提供生成策略,保障数据库表的主键唯一性
- 此方案适用于所有数据库,且支持数据库集群
业务场景
解决方案
设置数据具有指定的生命周期
setex key seconds value
psetex key milliseconds value
Tips 2:
- redis 控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作
string 类型数据操作的注意事项
- 数据操作不成功的反馈与数据正常操作之间的差异
- 表示运行结果是否成功
- (integer) 0 → false 失败
- (integer) 1 → true 成功
- 表示运行结果值
- (integer) 3 → 3 : 3个
- (integer) 1 → 1 : 1个
- 数据未获取到
(nil)等同于null
- 数据最大存储量
512MB
- 数值计算最大范围(java中的long的最大值)
9223372036854775807
string 类型应用场景
业务场景
主页高频访问信息显示控制,例如新浪微博大V主页显示粉丝数与微博数量
解决方案
key 的设置约定
数据库中的热点数据key命名惯例
hash
hash 类型
hash 类型数据的基本操作
hash 类型数据扩展操作
hash 类型数据操作的注意事项
hash 类型应用场景
业务场景1
业务场景2
业务场景3
list
list 类型
list 类型数据基本操作
list 类型数据扩展操作
业务场景
list 类型数据操作注意事项
list 类型应用场景
业务场景
set
set 类型
set 类型数据的基本操作
set 类型数据的扩展操作
set 类型数据操作的注意事项
set 类型应用场景
业务场景1
业务场景2
业务场景3
sorted_set
sorted_set 类型
sorted_set 类型数据的基本操作
sorted_set 类型数据的扩展操作
sorted_set 类型数据操作的注意事项
sorted_set 类型应用场景
业务场景1
业务场景
数据类型实践案例
业务场景1
业务场景2
解决方案列表
20210724# 黑马redis-02_redis 数据类型
原文:https://www.cnblogs.com/gaotianhao/p/15055336.html