【Redis】详细基础命令 - 学习笔记

这篇博客详细介绍了Redis的环境搭建、连接验证、数据结构(键、字符串、哈希、列表、集合)、事务、脚本、配置、发布订阅以及基准测试。包括安装启动、密码设置、各种命令的使用和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis 环境搭建及运行

安装(Ubuntu举例,其他系统类似)

apt-get update && apt-get install redis-server -y

启动 redis

redis-server &

注:加上 & 是让 redis-server 运行在后台,按 enter 后,即可不阻塞当前终端。

redis 自带客户端连接 redis-server

redis-cli

Redis 连接与安全验证

redis 设置 pass 验证

Redis数据库可以使用安全的方案,使得进行连接的任何客户端在执行命令之前都需要进行身份验证。

要保护Redis安全,需要在配置文件中设置密码。

查看密码配置

CONFIG get requirepass

默认情况下此属性为空,这表示还没有为此实例设置密码。您可以通过执行以下命令更改此属性。如下所示:

1) "requirepass"
2) ""

进行密码配置

CONFIG set requirepass "pwd-store-in-server" 

注:pwd-store-in-server 是你设置的密码

CONFIG get requirepass 

设置密码后,如果任何客户端运行命令而不进行身份验证,则会返回一个 (error) NOAUTH Authentication required. 的错误信息。 因此,客户端需要使用AUTH命令来验证。

AUTH命令语法

AUTH YourNewPassword

Redis连接命令

下表列出了与Redis连接相关的一些基本命令。

redis-cli
序号命令说明
1AUTH password使用给定的密码验证服务器
2ECHO message打印给定的字符串信息
3PING检查服务器是否正在运行
4QUIT关闭当前连接
5SELECT index更改当前连接的所选数据库

在远程服务器上运行命令

要在Redis远程服务器上运行命令,需要通过客户端redis-cli连接到服务器

语法:

redis-cli -h host -p port -a password
  • host : 主机
  • port : 端口
  • password : 密码

举例:

redis-cli -h 127.0.0.1 -p 6379 -a 123456

Redis 数据结构-键(key)

Redis 键命令用于管理 Redis 中的键。以下是使用redis键命令的语法。

COMMAND KEY_NAME

Redis键命令

下表列出了与键相关的一些基本命令。

编号命令描述
1DEL key此命令删除一个指定键(如果存在)。
2DUMP key此命令返回存储在指定键的值的序列化版本。
3EXISTS key此命令检查键是否存在。
4EXPIRE key seconds设置键在指定时间秒数之后到期/过期。
5EXPIREAT key timestamp设置在指定时间戳之后键到期/过期。这里的时间是Unix时间戳格式。
6PEXPIRE key milliseconds设置键的到期时间(以毫秒为单位)。
7PEXPIREAT key milliseconds-timestamp以Unix时间戳形式来设置键的到期时间(以毫秒为单位)。
8KEYS pattern查找与指定模式匹配的所有键。
9MOVE key db将键移动到另一个数据库。
10PERSIST key删除指定键的过期时间,得永生。
11PTTL key获取键的剩余到期时间。
12RANDOMKEY从Redis返回一个随机的键。
13RENAME key newkey更改键的名称。
14PTTL key获取键到期的剩余时间(以毫秒为单位)。
15RENAMENX key newkey如果新键不存在,重命名键。
16TYPE key返回存储在键中的值的数据类型。

Redis 数据结构-字符串(string)

Redis字符串命令

下表列出了一些用于在 Redis 中管理字符串的基本命令。

编号命令描述说明
1SET key value此命令设置指定键的值。
2GET key获取指定键的值。
3GETRANGE key start end获取存储在键上的字符串的子字符串。
4GETSET key value设置键的字符串值并返回其旧值。
5GETBIT key offset返回在键处存储的字符串值中偏移处的位值。
6MGET key1 [key2…]获取所有给定键的值
7SETBIT key offset value存储在键上的字符串值中设置或清除偏移处的位
8SETEX key seconds value使用键和到期时间来设置值
9SETNX key value设置键的值,仅当键不存在时
10SETRANGE key offset value]在指定偏移处开始的键处覆盖字符串的一部分
11STRLEN key获取存储在键中的值的长度
12MSET key value [key value …]为多个键分别设置它们的值
13MSETNX key value [key value …]为多个键分别设置它们的值,仅当键不存在时
14PSETEX key milliseconds value设置键的值和到期时间(以毫秒为单位)
15INCR key将键的整数值增加1
16INCRBY key increment将键的整数值按给定的数值增加
17INCRBYFLOAT key increment将键的浮点值按给定的数值增加
18DECR key将键的整数值减1
19DECRBY key decrement按给定数值减少键的整数值
20APPEND key value将指定值附加到键

Redis 数据结构-哈希(hash)

Redis Hashes 是字符串字段和字符串值之间的映射(类似于PHP中的数组类型)。 因此,它们是表示对象的完美数据类型。

在Redis中,每个哈希(散列)可以存储多达4亿个键-值对。

Redis哈希命令

下表列出了与哈希/散列相关的一些基本命令。

序号命令说明
1HDEL key field2 [field2]删除一个或多个哈希字段。
2HEXISTS key field判断是否存在散列字段。
3HGET key field获取存储在指定键的哈希字段的值。
4HGETALL key获取存储在指定键的哈希中的所有字段和值
5HINCRBY key field increment将哈希字段的整数值按给定数字增加
6HINCRBYFLOAT key field increment将哈希字段的浮点值按给定数值增加
7HKEYS key获取哈希中的所有字段
8HLEN key获取散列中的字段数量
9HMGET key field1 [field2]获取所有给定哈希字段的值
10HMSET key field1 value1 [field2 value2 ]为多个哈希字段分别设置它们的值
11HSET key field value设置散列字段的字符串值
12HSETNX key field value仅当字段不存在时,才设置散列字段的值
13HVALS key

Redis 数据结构-列表(list)

Redis 列表只是字符串列表,按插入顺序排序。可以在列表的头部或尾部添加Redis 列表中的元素。

列表的最大长度为 2^32 - 1 个元素(即 4294967295 ,每个列表可存储超过40亿个元素)。

Redis列表命令

下表列出了与列表相关的一些基本命令。

序号命令说明
1BLPOP key1 [key2 ] timeout删除并获取列表中的第一个元素,或阻塞,直到有一个元素可用
2BRPOP key1 [key2 ] timeout删除并获取列表中的最后一个元素,或阻塞,直到有一个元素可用
3BRPOPLPUSH source destination timeout从列表中弹出值,将其推送到另一个列表并返回它; 或阻塞,直到一个可用
4LINDEX key index]通过其索引从列表获取元素
5LINSERT key BEFORE/AFTER pivot value在列表中的另一个元素之前或之后插入元素
6LLEN key获取列表的长度
7LPOP key删除并获取列表中的第一个元素
8LPUSH key value1 [value2]将一个或多个值添加到列表
9LPUSHX key value]仅当列表存在时,才向列表添加值
10LRANGE key start stop从列表中获取一系列元素
11LREM key count value从列表中删除元素
12LSET key index value通过索引在列表中设置元素的值
13LTRIM key start stop修剪列表的指定范围
14RPOP key删除并获取列表中的最后一个元素
15RPOPLPUSH source destination删除列表中的最后一个元素,将其附加到另一个列表并返回
16RPUSH key value1 [value2]将一个或多个值附加到列表
17RPUSHX key value仅当列表存在时才将值附加到列表

Redis 数据结构-集合(set)

Redis 集合是唯一字符串的无序集合。 唯一值表示集合中不允许键中有重复的数据。

Redis 中设置添加,删除和测试成员的存在(恒定时间O(1),而不考虑集合中包含的元素数量)。列表的最大长度为 2^32 - 1 个元素(即4294967295,每组集合超过40亿个元素)。

Redis集合命令

下表列出了与集合相关的一些基本命令。

序号命令说明
1SADD key member1 [member2]将一个或多个成员添加到集合
2SCARD key获取集合中的成员数
3SDIFF key1 [key2]减去多个集合
4SDIFFSTORE destination key1 [key2]减去多个集并将结果集存储在键中
5SINTER key1 [key2]相交多个集合
6SINTERSTORE destination key1 [key2]交叉多个集合并将结果集存储在键中
7SISMEMBER key member判断确定给定值是否是集合的成员
8SMOVE source destination member将成员从一个集合移动到另一个集合
9SPOP key从集合中删除并返回随机成员
10SRANDMEMBER key [count]从集合中获取一个或多个随机成员
11SREM key member1 [member2]从集合中删除一个或多个成员
12SUNION key1 [key2]添加多个集合
13SUNIONSTORE destination key1 [key2]添加多个集并将结果集存储在键中
14SSCAN key cursor [MATCH pattern] [COUNT count]递增地迭代集合中的元素

Redis 事务(transaction)

Redis 事务允许在单个步骤中执行一组命令。以下是事务的两个属性:

  • 事务中的所有命令作为单个隔离操作并按顺序执行。不可以在执行 Redis 事务的中间向另一个客户端发出的请求。
  • Redis 事务也是原子的。原子意味着要么处理所有命令,要么都不处理。

语法示例

Redis 事务由命令 MULTI 命令启动,然后需要传递一个应该在事务中执行的命令列表,然后整个事务由 EXEC 命令执行。

MULTI 
List of commands here 
EXEC

Redis事务命令

下表列出了与 Redis 事务相关的一些基本命令。

序号命令说明
1DISCARD丢弃在MULTI之后发出的所有命令
2EXEC执行MULTI后发出的所有命令
3MULTI标记事务块的开始
4UNWATCH取消 WATCH 命令对所有 key 的监视。
5WATCH key [key …]监视给定的键以确定MULTI / EXEC块的执行

Redis 脚本

Redis 脚本用于使用 Lua解释器 来执行脚本。从 Redis 2.6.0 版开始内置到Redis 中。使用脚本的命令是 EVAL 命令。

语法

以下是 EVAL 命令的基本语法。

EVAL script numkeys key [key ...] arg [arg ...]

Redis事务命令

下表列出了与Redis脚本相关的一些基本命令。

序号命令说明
1EVAL script numkeys key [key …] arg [arg …]执行一个Lua脚本。
2EVALSHA sha1 numkeys key [key …] arg [arg …]执行一个Lua脚本。
3SCRIPT EXISTS script [script …]检查脚本缓存中是否存在脚本。
4SCRIPT FLUSH从脚本缓存中删除所有脚本。
5SCRIPT KILL杀死当前正在执行的脚本。
6SCRIPT LOAD script将指定的Lua脚本加载到脚本缓存中。

Redis 配置(redis.conf)

Redis 中,在 Redis 的根目录下有一个配置文件( redis.conf )。当然您可以通过 Redis CONFIG 命令获取和设置所有的 Redis 配置。

语法 以下是 Redis 中的 CONFIG 命令的基本语法。

CONFIG GET CONFIG_SETTING_NAME

要获取所有配置设置,请使用*代替CONFIG_SETTING_NAME

编辑配置

要更新配置,可以直接编辑 redis.conf 文件,也可以通过 CONFIG set 命令更新配置。

语法 以下是 CONFIG SET 命令的基本语法。

CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

Redis 发送订阅(pub sub)

Redis 发布订阅( pub/sub )是一种消息通信模式:发送者( pub)发送消息,订阅者( sub )接收消息。 Redis 发布订阅( pub/sub )实现了消息系统,发送者(在 redis 术语中称为发布者)在接收者(订阅者)接收消息时发送消息。传送消息的链路称为信道。

Redis 中,客户端可以订阅任意数量的信道。

Redis发布订阅命令

下表列出了与 Redis 发布订阅相关的一些基本命令。

序号命令说明
1PSUBSCRIBE pattern [pattern …]订阅一个或多个符合给定模式的频道。
2PUBSUB subcommand [argument [argument …]查看订阅与发布系统状态。
3PUBLISH channel message将信息发送到指定的频道。
4PUNSUBSCRIBE [pattern [pattern …]退订所有给定模式的频道。
5SUBSCRIBE channel [channel …]订阅给定的一个或多个频道的信息。
6UNSUBSCRIBE [channel [channel …]退订给定的频道。

Redis 基准测试(benchmark)

Redis 基准测试是通过同时运行 n 个命令来检查 Redis 的性能的实用程序。

语法

以下是基准测试命令的基本语法。

redis-benchmark [option] [option value]

以下是Redis基准测试中可用选项的列表。

序号选项说明默认值
1-h指定服务器主机名127.0.0.1
2-p指定服务器端口6379
3-s指定服务器套接字
4-c指定并行连接的数量50
5-n指定请求的总数10000
6-d指定SET/GET值的数据大小(以字节为单位)2
7-k1=keep alive, 0=reconnect1
8-r使用SET/GET/INCR的随机键,SADD的随机值
9-p管道*[Math Processing Error]*请求1
10-h指定服务器主机名
11-q强制让Redis安装。 只显示query/sec
12--csv以CSV格式输出
13-l生成循环,永久运行测试
14-t只运行逗号分隔的测试列表
15-I空闲模式。 只打开N个空闲连接并等待

示例1

以下示例通过调用100000个命令检查Redis。

redis-benchmark -n 100000  

示例2

下面的示例显示了Redis基准实用程序中多个选项的使用。

redis-benchmark -h IP -p PORD -a PASSWORK -t set,lpush -n 100000 -q 
redis-benchmark -h IP -p PORD -a PASSWORK -n 100000 -c 1000 -d 1024 -l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Warolitbos

如果有帮助,请我喝咖啡!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值