网站用图片做背景,铜仁建设公司网站,网站开发的项目总结,alexa排名查询统计Redis之Hash和List类型常用命令一、Hash类型详解1. Hash类型的特点2. 常用命令及示例#xff08;1#xff09;设置字段值#xff08;2#xff09;获取字段值#xff08;3#xff09;删除字段#xff08;4#xff09;其他常用命令3. 应用场景二、List类型详解1. List类型…
Redis之Hash和List类型常用命令一、Hash类型详解1. Hash类型的特点2. 常用命令及示例1设置字段值2获取字段值3删除字段4其他常用命令3. 应用场景二、List类型详解1. List类型的特点2. 常用命令及示例1添加元素2获取元素3列表长度与修剪4其他常用命令3. 应用场景Redis内存数据库中除了基础的String类型外Hash和List也是开发中频繁使用的两种数据结构下面详细讲解Hash和List类型的特点、常用命令及典型应用场景以便处理复杂业务需求。
一、Hash类型详解
Hash类型哈希是一个键值对集合类似于Java中的HashMap或Python中的字典。它适合存储对象类数据能够实现对对象属性的精准操作避免了String类型中序列化整个对象的开销。
1. Hash类型的特点
键值结构每个Hash类型的键key下包含多个字段field和对应的值value二进制安全field和value都支持二进制数据内存高效存储对象数据比String类型更节省空间操作灵活可单独对某个字段进行CRUD无需操作整个对象
2. 常用命令及示例
假设我们要存储用户信息以user:100作为Hash的键包含id、name、age、email等字段。
1设置字段值 HSET key field value为哈希表中的字段设置值返回受影响的字段数量 127.0.0.1:6379 HSET user:100 id 100 name 张三 age 25
(integer) 3HMSET key field1 value1 field2 value2 …同时设置多个字段值Redis 4.0.0后推荐使用HSET替代 127.0.0.1:6379 HMSET user:100 email zhangsanexample.com gender 男
OK2获取字段值 HGET key field获取哈希表中指定字段的值 127.0.0.1:6379 HGET user:100 name
张三HMGET key field1 field2 …获取多个字段的值 127.0.0.1:6379 HMGET user:100 id age gender
1) 100
2) 25
3) 男HGETALL key获取哈希表中所有字段和值 127.0.0.1:6379 HGETALL user:100
1) id
2) 100
3) name
4) 张三
5) age
6) 25
...3删除字段
HDEL key field1 field2 …删除哈希表中的一个或多个字段返回删除的字段数量127.0.0.1:6379 HDEL user:100 gender
(integer) 14其他常用命令 HEXISTS key field判断字段是否存在存在返回1否则返回0 127.0.0.1:6379 HEXISTS user:100 email
(integer) 1HLEN key获取哈希表中字段的数量 127.0.0.1:6379 HLEN user:100
(integer) 4HKEYS key获取哈希表中所有字段名 127.0.0.1:6379 HKEYS user:100
1) id
2) name
3) age
4) emailHVALS key获取哈希表中所有字段值 127.0.0.1:6379 HVALS user:100
1) 100
2) 张三
3) 25
4) zhangsanexample.comHINCRBY key field increment为数字类型字段增加指定增量 127.0.0.1:6379 HINCRBY user:100 age 1
(integer) 263. 应用场景
存储对象数据如用户信息、商品详情、订单数据等统计数据如用户的关注数、粉丝数、文章阅读量等配置信息存储应用的各种配置项支持单独更新某个配置
二、List类型详解
List类型列表是一个有序的字符串集合类似于Java中的LinkedList允许元素重复底层采用双向链表结构实现适合做队列或栈操作。
1. List类型的特点
有序性元素按照插入顺序排序双向操作可从头部和尾部插入/删除元素灵活的范围操作支持获取指定索引范围的元素内存高效链表结构对元素的增删操作效率高
2. 常用命令及示例
以存储文章评论列表为例使用article:100:comments作为List的键。
1添加元素 LPUSH key value1 value2 …从列表头部插入一个或多个元素返回插入后列表的长度 127.0.0.1:6379 LPUSH article:100:comments 这篇文章很有用 学习了
(integer) 2RPUSH key value1 value2 …从列表尾部插入一个或多个元素 127.0.0.1:6379 RPUSH article:100:comments 感谢分享
(integer) 32获取元素 LPOP key移除并返回列表的第一个元素 127.0.0.1:6379 LPOP article:100:comments
学习了RPOP key移除并返回列表的最后一个元素 127.0.0.1:6379 RPOP article:100:comments
感谢分享LRANGE key start stop获取列表中指定范围的元素0表示第一个元素-1表示最后一个元素 127.0.0.1:6379 LPUSH article:100:comments 评论1 评论2 评论3
(integer) 4
127.0.0.1:6379 LRANGE article:100:comments 0 -1
1) 评论3
2) 评论2
3) 评论1
4) 这篇文章很有用LINDEX key index获取列表中指定索引的元素 127.0.0.1:6379 LINDEX article:100:comments 1
评论23列表长度与修剪 LLEN key获取列表的长度 127.0.0.1:6379 LLEN article:100:comments
(integer) 4LTRIM key start stop保留列表中指定范围的元素删除其他元素 127.0.0.1:6379 LTRIM article:100:comments 0 1
OK
127.0.0.1:6379 LRANGE article:100:comments 0 -1
1) 评论3
2) 评论24其他常用命令 LREM key count value删除列表中与value相等的元素count指定删除数量正数从头部开始负数从尾部开始0删除所有 127.0.0.1:6379 LREM article:100:comments 1 评论2
(integer) 1LSET key index value设置列表中指定索引的元素值 127.0.0.1:6379 LSET article:100:comments 0 最新评论
OKRPOPLPUSH source destination移除source列表的最后一个元素并将其添加到destination列表的头部 127.0.0.1:6379 RPOPLPUSH article:100:comments article:101:comments
这篇文章很有用3. 应用场景
消息队列利用LPUSHRPOP实现简单的FIFO先进先出队列栈结构使用LPUSHLPOP或RPUSHRPOP实现LIFO后进先出栈最新列表如最新文章、最新评论使用LPUSH添加LRANGE获取前N条排行榜结合LTRIM可实现固定长度的排行榜任务队列通过RPOPLPUSH实现安全的任务处理避免任务丢失 总结 Hash类型适合存储对象类数据支持对单个字段的精准操作是存储用户信息、商品详情等数据的理想选择List类型基于有序链表实现适合构建队列、栈、最新列表等场景支持灵活的首尾操作和范围查询 若这篇内容帮到你动动手指支持下关注不迷路干货持续输出 ヾ(´∀ ˋ)ヾ(´∀ ˋ)ヾ(´∀ ˋ)ヾ(´∀ ˋ)ヾ(´∀ ˋ)