Redis数据类型及存取命令
理想三旬浓烟下,奔赴山海与荒野
一,Redis常用五种数据类型及存取命令
1,字符串(String)
1 # 设置字符串的值 2 SET key value 3 4 # 获取字符串的值 5 GET key
2,列表(List)
1 # 在列表左侧添加一个元素 2 LPUSH key value 3 4 # 在列表右侧添加一个元素 5 RPUSH key value 6 7 # 获取列表指定范围内的元素 8 LRANGE key start stop
3,集合(set)
1 # 添加一个元素到集合中 2 SADD key member 3 4 # 获取集合中所有元素 5 SMEMBERS key
4,有序集合(sorted set)
1 # 添加一个元素到有序集合中 2 ZADD key score member 3 4 # 根据分值范围获取有序集合中的元素 5 ZRANGEBYSCORE key min max
5,哈希表(hash)
1 # 设置哈希表中的键值对 2 HSET key field value 3 4 # 获取哈希表中的指定键值对 5 HGET key field
除了以上数据类型,Redis 还支持更多的数据类型和命令,如位图(bitmap),地理位置(geo)等。
此外,Redis 还提供了一些通用控制命令,如查询键是否存在,删除指定键值对等,这些命令都是在Redis中使用非常频繁的。
二,通用控制命令
1,存取控制
1 # 查看键是否存在 2 EXISTS key 3 4 # 删除指定键值对 5 DEL key [key ...] 6 7 # 设置键的过期时间(秒) 8 EXPIRE key seconds 9 10 # 获取键的过期时间(秒),-1表示永不过期,-2表示已过期 11 TTL key
2,计数器和数字控制
1 # 将指定键值加上一个整数 2 INCRBY key increment 3 4 # 将指定键值减去一个整数 5 DECRBY key decrement
3,事务控制
1 # 开启事务 2 MULTI 3 4 # 提交事务 5 EXEC 6 7 # 取消事务 8 DISCARD
4,其他
1 # 获取Redis服务器当前时间 2 TIME 3 4 # 执行脚本命令 5 EVAL script numkeys key [key ...] arg [arg ...]
5,服务器控制
1 # 关闭Redis服务器 2 SHUTDOWN [SAVE|NOSAVE] 3 4 # 通过哈希表设置Redis配置参数 5 CONFIG SET parameter value 6 7 # 获取Redis配置参数 8 CONFIG GET parameter
6,客户端控制
1 # 查看客户端连接信息 2 CLIENT LIST 3 4 # 关闭指定客户端连接 5 CLIENT KILL addr
7,复制控制
# 设置Redis主服务器 SLAVEOF ip port # 取消Redis的主从复制 SLAVEOF NO ONE # 读取复制操作日志和状态信息 INFO REPLICATION
三,Redis自定义数据类型模块
在 Redis 中,可以通过使用 Redis 模块系统自定义数据类型或扩展 Redis 功能。Redis 模块是一个可动态载入的库,通过其中定义的一组 API 实现所需的操作,同时其代码可以独立于其他 Redis 代码编写和调试。
自定义 Redis 模块需要如下步骤:
1,了解 Redis 模块 API
首先需要了解 Redis 模块 API 以便编写模块代码。Redis 模块 API 定义了一组由 Redis 主程序和模块之间调用的函数,使用这些 API 可以操作主存储器、执行 I/O、与客户端进行交互等。API 集合在 Redis 模块的头文件 redismodule.h 中,可以在 Redis 源码中找到。
2,编写模块代码
在编写过程中,需要使用模块 API 为 Redis 主程序添加新数据类型或扩展 Redis 功能。模块代码需要遵循一些规则以便 Redis 主程序可以动态加载它。例如,模块代码必须定义初始化函数、卸载函数和入口点函数等。
3,编译模块代码
编译模块代码需要使用 Redis 提供的编译器,编译后将产生动态链接库。模块文件名必须以 .so 或 .dll 为后缀,以便 Redis 主程序可以正确载入它。在编译过程中,需要将 Redis 主程序和模块头文件包含到编译命令中。
4,载入模块
通过 Redis 模块系统载入已编译的模块。可以使用 Redis 命令 MODULE LOAD
载入模块。载入模块后,Redis 主程序可以使用新的 API 和数据类型或扩展 Redis 功能。
Redis 模块提供了一种方便的方式扩展 Redis 的功能。这种扩展方式可以自定义强类型数据结构、算法等,并通过 Redis 内存管理系统来协调资源的分配和释放。同时,自定义的模块也可以享受 Redis 主程序的诸多特性,如持久化、复制等。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)