Redis
Redis下载安装
- 官方下载地址:https://redis.io/,官方文档https://redis.io/documentation
- Windows平台下载后直接解压使用
基本操作
数据添加
set key value
数据查询
get key
删除数据
del key
帮助
help command
数据存储类型
Redis常用数据类型有五种,分别是:
- string
- hash
- list
- set
- sorted_set
string类型
基本操作
添加、修改多个数据
mset key1 value1 key2 value2 ...
获取多个数据
mget key1 key2
获取数据字符个数
strlen key
追加数据到原始数据后(如果不存在则新建)
append key value
单数据操作与多数据的选择
扩展操作
设置数值数据增加指定范围的值
incr key incrby key increment increment可以为负值 incrbyfloat key increment
设置数值数据减少指定范围的值
decr key decrby key increment increment可以为负值 decrfloat key increment
string在redis内部存储默认是字符串,当使用数值类操作时,会将字符串转换成数值进行计算;由于所有的操作都是原子性的,并且采用单线程处理所有的业务,因此无需考虑并发带来的影响
设置数据的生命周期
setex key seconds value psetex key milliseconds value
再次使用set用一个key会覆盖setex的生命周期
:warning:注意事项
- 数据有最大存储量
- 数值计算有最大范围(java中的long的最大值)
- 数据操作反馈的差异,有些表示结果值,有些表示是否成功
业务场景
微博大V用户设定用户信息,用用户表的用户主键和属性值作为key
eg: user:uid:1615616:fans 1315
eg: user:uid:1615616 {uid:1615616, blogs: value}
hash类型
一个存储空间保存多个键值对数据
基本操作
添加、修改数据
hset key field1 value1
获取数据
hget key field hgetall key
删除数据
hdel key field1 [field2]
添加、修改多个数据
hmset key field1 value1
获取多个数据
hmget key field1 field2
获取哈希表中的字段数量
hlen key
获取哈希表中是否存在指定的字段
hexitsts key field
扩展操作
获取哈希表中所有的字段名或字段值
hkeys key hvals key
设置指定字段的数值数据增加指定范围的值
hincrby key field increment hincybyfloat key field increment
:warning:注意事项
- hash类型下的value只能存储字符串,不存在嵌套现象
- 每个hash可以存储2**32-1个键值对
- hash不是为了存储大量对象而设计的,不可滥用
- hgetall操作可以获取全部属性,如果内部field较多,数据遍历效率较低
业务场景
电商网站购物车设计与实现
用户id作为key,购物车的相关信息作为value