Redis数据类型与命令详解:String、List、Set、Sorted Set、Hash
需积分: 11 112 浏览量
更新于2024-09-10
收藏 370KB PDF 举报
"Redis数据类型及指令"
Redis是一个基于键值对的NoSQL数据库,其核心特性之一是支持多种数据类型。本篇文章主要介绍了Redis中的五种数据类型:String、List、Set、Sorted Set和Hash,以及与这些类型相关的操作指令。
1. String
String是最基本的数据类型,可以存储字符串、数字等简单数据。相关指令包括:
- `SET key value`:设置键值对,如果键已存在,则覆盖原有值。
- `GET key`:获取键对应的值,若键不存在,返回`nil`。
- `EXISTS key`:检查键是否存在,存在返回1,不存在返回0。
- `DEL key1 key2 ... keyN`:删除一个或多个键,返回被删除键的数量。
- `RENAME oldkey newkey`:重命名键,如果新键已存在,则会被覆盖。
- `RENAMENX oldkey newkey`:与`RENAME`类似,但新键已存在时操作失败。
- `DBSIZE`:返回当前数据库中的键数量。
- `KEYS pattern`:根据模式匹配所有键。
- `FLUSHDB`:清除当前数据库的所有键。
- `FLUSHALL`:清除所有数据库的所有键。
- `EXPIRE key seconds`:设置键的过期时间,单位为秒。
- `TTL key`:查询键的剩余过期时间,返回秒数,-1表示未设置过期时间或键不存在。
2. List
List是有序的字符串列表,支持在两端添加元素。
- `LPUSH key value1 value2`:在列表头部添加元素。
- `RPUSH key value1 value2`:在列表尾部添加元素。
- `LPOP key`:移除并返回列表的第一个元素。
- `RPOP key`:移除并返回列表的最后一个元素。
- `LINDEX key index`:获取列表中指定位置的元素。
- `LREM key count value`:删除列表中匹配的值,count决定删除次数。
3. Set集合
Set是无序且不重复的字符串集合。
- `SADD key member1 member2`:向集合中添加元素。
- `SMEMBERS key`:获取集合中的所有成员。
- `SREM key member1 member2`:从集合中移除元素。
- `SISMEMBER key member`:判断元素是否在集合中。
4. Sorted Set
Sorted Set是带有分数的有序集合。
- `ZADD key score1 member1 score2 member2`:添加成员到有序集合,并关联分数。
- `ZRANGE key start stop [WITHSCORES]`:按分数排序返回有序集合的一部分。
- `ZREVRANGE key start stop [WITHSCORES]`:按分数降序返回有序集合的一部分。
- `ZINCRBY key increment member`:增加成员的分数。
- `ZREM key member1 member2`:从有序集合中移除成员。
5. Hash
Hash是一系列字段-值对的集合。
- `HSET key field value`:设置哈希表字段的值。
- `HGET key field`:获取哈希表中字段的值。
- `HGETALL key`:获取哈希表中所有字段和值。
- `HDEL key field1 field2`:从哈希表中删除一个或多个字段。
- `HLEN key`:返回哈希表中字段的数量。
以上指令只是Redis命令集的一小部分,每个指令还有更多的参数和使用场景。熟练掌握这些指令,可以灵活地在Redis中存储和处理各种数据。在实际应用中,Redis还支持事务、发布订阅、持久化等高级功能,是构建高性能缓存、实时数据分析等系统的重要工具。
2021-01-21 上传
2023-03-08 上传
2020-12-16 上传
2021-01-07 上传
2019-05-11 上传
2018-03-08 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
fan20065
- 粉丝: 1
- 资源: 1
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析