1、简介
- 定义:Redis是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
- 特点:
- 高性能:读写速度非常快,支持每秒执行数十万次读写操作。
- 基于内存:所有数据都存储在内存中,使得数据访问非常迅速。
- 数据结构丰富:支持多种数据类型,如字符串(string)、列表(list)、集合(set)、有序集合(sorted set)和哈希(hash)。
- 支持持久化:可以将内存中的数据定期写入磁盘,以保证数据的持久性。
2、安装
参考往期文章:【redis】redis安装-CSDN博客
- Windows系统:虽然Redis官网对Windows版本的支持有限,但仍有第三方提供的Windows版本可供使用。安装时,只需解压并运行相应的可执行文件即可。
- Linux系统:在Linux上安装Redis通常涉及下载源码包、编译和安装等步骤。也可以通过包管理器(如apt、yum等)直接安装。
3、Redis服务启动与停止
- 启动:在Windows上,可以通过双击
redis-server.exe
启动服务;在Linux上,可以通过命令行运行redis-server
命令启动服务。 - 停止:在Windows上,可以通过Ctrl+C停止服务;在Linux上,可以通过发送
SIGINT
信号或使用redis-cli shutdown
命令停止服务。
4、连接Redis
- 使用
redis-cli
命令连接Redis服务。在本地连接时,只需输入redis-cli
; - 如果Redis服务运行在其他主机上,需要指定主机名和端口号,如
redis-cli -h <hostname> -p <port>
。
5、Redis常用命令
5.1基础操作
- 设置键值对
SET key value
: 设置键的值。SETNX key value
: 如果键不存在,则设置键的值。
- 获取键值
GET key
: 获取键的值。MGET key1 key2 ...
: 获取多个键的值。
- 删除键值
DEL key1 key2 ...
: 删除一个或多个键。
- 键的存在性
EXISTS key
: 检查键是否存在。
- 键的过期时间
EXPIRE key seconds
: 设置键的过期时间(秒)。TTL key
: 获取键的剩余生存时间(秒)。
5.2数据类型操作
字符串(String)
APPEND key value
: 将值追加到键的当前值。INCR key
: 将键的值加 1。如果键不存在,则设置键的值为 1。DECR key
: 将键的值减 1。如果键不存在,则设置键的值为 -1。
列表(List)
LPUSH key value1 value2 ...
: 将一个或多个值插入到列表的左侧。RPUSH key value1 value2 ...
: 将一个或多个值插入到列表的右侧。LPOP key
: 移除并获取列表的左侧第一个元素。RPOP key
: 移除并获取列表的右侧第一个元素。LRANGE key start stop
: 获取列表指定范围内的元素。
集合(Set)
SADD key member1 member2 ...
: 将一个或多个成员添加到集合中。SREM key member1 member2 ...
: 从集合中移除一个或多个成员。SMEMBERS key
: 返回集合中的所有成员。SISMEMBER key member
: 检查成员是否存在于集合中。
有序集合(Sorted Set)
ZADD key [NX|XX] [CH] [INCR] score1 member1 [score2 member2 ...]
: 将一个或多个成员及其分数添加到有序集合中。ZREM key member1 member2 ...
: 从有序集合中移除一个或多个成员。ZRANGE key start stop [WITHSCORES]
: 返回有序集合中指定范围内的成员及其分数。ZRANK key member
: 返回有序集合中成员的排名(从 0 开始)。
哈希(Hash)
HSET key field value
: 将哈希表 key 中的字段 field 的值设为 value。HGET key field
: 获取哈希表 key 中给定字段 field 的值。HDEL key field1 field2 ...
: 删除哈希表 key 中的一个或多个字段。HGETALL key
: 获取哈希表 key 中所有的字段和值。
5.3服务器命令
PING
: 测试服务器是否正在运行。INFO
: 提供有关服务器的信息和统计。FLUSHALL
: 删除所有数据库的所有键。FLUSHDB
: 删除当前数据库的所有键。SAVE
: 将数据同步保存到磁盘。SHUTDOWN
: 停止 Redis 服务器。
5.4脚本和事务
EVAL script numkeys key1 key2 ... arg1 arg2 ...
: 执行 Lua 脚本。MULTI
: 标记一个事务块的开始。EXEC
: 执行所有之前通过 MULTI 命令进入事务块的命令。DISCARD
: 取消事务,放弃执行事务块内的所有命令
5.5订阅与发布
SUBSCRIBE channel [channel ...]
: 订阅一个或多个频道。PUBLISH channel message
: 将消息发送到指定的频道。UNSUBSCRIBE [channel [channel ...]]
: 退订一个或多个频道。