Redis基础类型常用操作命令

Redis基础类型常用操作命令

概念:Redis是用C语言开发的一个开源的高性能键值对数据库。

特征:

数据间没有必然的联系

内部采用单线程机制进行工作

高性能

多数据类型支持

字符串类型 String

列表类型 List

散列类型 Map

集合类型 Set

有序集合类型 SortedSet

持久化支持

应用场景

为热点数据加速查询;如:热点商品、热点新闻、热点资讯等高访问量信息。

任务队列;如:秒杀、抢购、购票等。

即时信息查询;如:排行榜等。

时效性信息控制;如:验证码、投票控制等。

分布式数据共享;如:分布式架构中的session等。

消息队列

分布式锁

基础数据类型之: String

单个string类型的存储空间为512MB

string基本操作

添加或修改数据

set key value

获取数据

get key

删除数据

del key

设置过期时间(默认单位为秒)

expire key second

追加信息到初始value后边

append key value

添加/修改多个数据

mset key1 value1 key2 value2...

获取多个数据

mget key1 key2 ...

获取字符串长度

strlen key

设置key的生命周期 控制生命周期

setex key seconds value (秒) psetex key millisexxonds value (毫秒)

key的设置约定

与数据库中的表-主键-字段一一对应

 表名主键名主键值字段名
eg1   order   id   443523454   name  
eg2   equire   id   435432543   type  
eg3   news   id   45435454   title  

基础数据类型之:Hash

存储需求: 对一系列存储的数据进行编排,方便管理,典型应用存储对象信息

存储结构:一个存储空间存储多个键值对数据

hash类型:底层使用哈希表结构实现数据存储

redis hash存储空间

hash存储结构优化

如果field数量较少,存储结构优化为类数组结构

如果field数量较多,存储结构使用HashMap结构

hash类型基本操作

添加/修改数据

hset key field value

获取数据

hget key field hgetall key

删除数据

hdel key field [field2 ...]

添加或删除多个数据

hmset key field1 value1 field2 value2 ...

获取多个数据

hmget key field1 field2 ...

获取hash表中的字段的数量

hlen key

获取hash表中是否存在指定的字段

hexists key field

获取哈希表中所用的字段名或字段值

hkeys key hvalues key

设置指定字段的数值数据增加指定范围的值

hincrby key field increment hincrbyfloat key field increment

如果key值下的field存在则不做操作 不存在则添加进去

hsetnx key field value

hash类型数据操作的注意事项

hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象,如果数据未获取到,对应的值为(nil)

每个hash存储的键值对上限为
$$
2^{32}-1
$$
个键值对

hash类型十分贴近对象的存储形式,并且可以灵活删除对象属性。但hash设计初衷并不是为了存储大量对象而设计的,切记不可滥用,更不可将hash作为对象列表使用

hgetall操作可以获取全部属性,如果内部field过多,遍历整体数据效率会很低,有可能会成为数据访问瓶颈

应用场景

电商网站购物车设计实现

基础数据类型之:list

数据存储需求:存储多个数据,并对数据进入存储Jon关键的顺序进行区分

需要的存储结构:一个存储空间存储多个数据,并且数据可以体现进入顺序

list类型:保存多个数据,底层使用双向链表存储结构实现

list类型存储空间

list类型是双向链表存储的

list基本操作

添加/修改数据

lpush key value1 value2 [value3] ... //从list链表左侧添加 rpush key value1 value2 [value3] ... //从list右侧添加

获取数据

lrange key start stop //指定链表起始结束位置中的value //在获取未知长的的list类型的时候,想查看所有的value可以使用 -1表示倒数第一个 lrange key start -1 lindex key index //获取链表中指定位置的值 llen key //获取链表的长度

获取并移除数据

lpop key rpop key

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/555087b18a4bf8e93246df5f5987f444.html