Bootstrap

Redis基础知识学习笔记(三)

Redis命令

一.Redis命令

Redis 命令用于在 redis 服务上执行操作。

要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中。

语法:

1.启动redis服务器

redis-server 

2.本地启动redis客户端

redis-cli

3.远程启动redis客户端

redis-cli -h host -p port -a password

host换为远程地址,port换为远程端口,password换为服务器密码(如果有)

4.测试是否建立连接

在进入redis命令行之后使用ping命令判断:

ping

如果返回PONG则连接成功

如果在连接时出现中文乱码,加上raw选项

redis-cli --raw

二.Redis 键(key)

Redis 键命令用于管理 redis 的键。

语法:

COMMAND KEY_NAME

Redis Key 相关命令

序号命令描述
1DEL key删除一个或多个存在的键,不存在的键将被忽略。
2DUMP key序列化给定键,并返回被序列化的值(一个二进制安全的字符串),如果键不存在则返回空字符串。
3EXISTS key检查给定键是否存在。如果键存在返回 1,否则返回 0。
4EXPIRE key seconds为给定键设置过期时间(以秒为单位)。如果键已经存在过期时间,则更新它。
5EXPIREAT key timestamp设置键的过期时间(UNIX 时间戳)。到达指定时间戳后,键将自动被删除。
6PEXPIRE key milliseconds设置键的过期时间(以毫秒为单位),功能与 EXPIRE 类似,但时间单位不同。
7PEXPIREAT key milliseconds-timestamp设置键的过期时间戳(UNIX 时间戳,以毫秒为单位)。
8KEYS pattern查找所有符合给定模式的键。由于这个命令可能会阻塞服务器,建议谨慎使用,特别是在包含大量键的数据库中。
9MOVE key db将当前数据库的键移动到指定的数据库中。如果键不存在或目标数据库已包含同名键,则操作失败。
10PERSIST key移除键的过期时间,使键成为永久性的。
11PTTL key以毫秒为单位返回键的剩余过期时间。如果键不存在或没有设置过期时间,则返回相应的值。
12TTL key以秒为单位返回键的剩余生存时间(TTL, Time To Live)。如果键不存在或没有设置过期时间,则返回相应的值。
13RANDOMKEY从当前数据库中随机返回一个键。如果数据库为空,则返回空。
14RENAME key newkey修改键的名称。如果 newkey 已存在,则 newkey 的原值将被覆盖。
15RENAMENX key newkey当且仅当 newkey 不存在时,将 key 改名为 newkey。
16SCAN cursor [MATCH pattern] [COUNT count]迭代当前数据库中的键空间。这是一个用于分页遍历键的替代命令,比 KEYS 命令更有效率。
17TYPE key返回存储在键中的值的类型。如果键不存在,则返回 none。

三.Redis 字符串(String)

Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:

COMMAND KEY_NAME

Redis 字符串命令

Redis 字符串数据类型的相关命令用于管理 redis 字符串值。以下是一些常用的Redis字符串命令:

序号命令描述
1SET key value设置指定 key 的值。
2GET key获取指定 key 的值。
3GETRANGE key start end返回 key 中字符串值的子字符。
4GETSET key value将给定 key 的值设为 value,并返回 key 的旧值(old value)。
5GETBIT key offset对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
6MGET key1 [key2..]获取所有()一个给定或多个 key 的值。
7SETBIT key offset value对 key 所储存的字符串值(,设置或清除指定偏移量上的位bit)。
8SETEX key seconds value将值 value 关联到 key,并将 key 的过期时间设为 seconds (以秒为单位)。
9SETNX key value只有在 key 不存在时设置 key 的值。
10SETRANGE key offset value用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。
11STRLEN key返回 key 所储存的字符串值的长度。
12MSET key value [key value ...]同时设置一个或多个 key-value 对。
13MSETNX key value [key value ...]同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
14PSETEX key milliseconds value这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是以秒为单位。
15INCR key将 key 中储存的数字值增一。
16INCRBY key increment将 key 所储存的值加上给定的增量值(increment)。
17INCRBYFLOAT key increment将 key 所储存的值加上给定的浮点增量值(increment)。
18DECR key将 key 中储存的数字值减一。
19DECRBY key decrementkey 所储存的值减去给定的减量值(decrement)。
20APPEND key value如果 key 已经存在并且是一个字符串,APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。

这些命令为Redis字符串类型的操作提供了丰富的功能,包括设置、获取、追加、增减数值等操作,以及支持设置键的过期时间等高级功能。

四.Redis 哈希(Hash)

Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

Redis 字符串命令

Redis 字符串数据类型的相关命令用于管理 redis 字符串值。以下是一些常用的Redis字符串命令:

序号命令描述
1SET key value设置指定 key 的值。
2GET key获取指定 key 的值。
3GETRANGE key start end返回 key 中字符串值的子字符。
4GETSET key value将给定 key 的值设为 value,并返回 key 的旧值(old value)。
5GETBIT key offset对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
6MGET key1 [key2..]获取所有()一个给定或多个 key 的值。
7SETBIT key offset value对 key 所储存的字符串值(,设置或清除指定偏移量上的位bit)。
8SETEX key seconds value将值 value 关联到 key,并将 key 的过期时间设为 seconds (以秒为单位)。
9SETNX key value只有在 key 不存在时设置 key 的值。
10SETRANGE key offset value用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。
11STRLEN key返回 key 所储存的字符串值的长度。
12MSET key value [key value ...]同时设置一个或多个 key-value 对。
13MSETNX key value [key value ...]同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
14PSETEX key milliseconds value这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是以秒为单位。
15INCR key将 key 中储存的数字值增一。
16INCRBY key increment将 key 所储存的值加上给定的增量值(increment)。
17INCRBYFLOAT key increment将 key 所储存的值加上给定的浮点增量值(increment)。
18DECR key将 key 中储存的数字值减一。
19DECRBY key decrementkey 所储存的值减去给定的减量值(decrement)。
20APPEND key value如果 key 已经存在并且是一个字符串,APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。

这些命令为Redis字符串类型的操作提供了丰富的功能,包括设置、获取、追加、增减数值等操作,以及支持设置键的过期时间等高级功能。

五.Redis 列表(List)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

Redis 列表命令

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。以下是一些常用的Redis列表命令:

序号命令描述
1BLPOP key1 [key2] timeout移出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
2BRPOP key1 [key2] timeout移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
3BRPOPLPUSH source destination timeout从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它;如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
4LINDEX key index通过索引获取列表中的元素(索引从0开始)。
5`LINSERT key BEFOREAFTER pivot value`
6LLEN key获取列表长度。
7LPOP key移出并获取列表的第一个元素。
8LPUSH key value1 [value2]将一个或多个值插入到列表头部。
9LPUSHX key value将一个值插入到已存在的列表头部。如果列表不存在,则不进行任何操作。
10LRANGE key start stop获取列表指定范围内的元素(包含startstop)。
11LREM key count value移除列表元素。count的值可以是正数、负数或者0,分别表示从头部开始移除与value相等的元素、从尾部开始移除、移除所有与value相等的元素。
12LSET key index value通过索引设置列表元素的值。如果索引超出范围,则返回一个错误。
13LTRIM key start stop对一个列表进行修剪(trim),只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
14RPOP key移除列表的最后一个元素,返回值为移除的元素。
15RPOPLPUSH source destination移除列表的最后一个元素,并将该元素添加到另一个列表的头部,然后返回该元素。
16RPUSH key value1 [value2]在列表中添加一个或多个值到列表尾部。
17RPUSHX key value为已存在的列表添加值到列表尾部。如果列表不存在,则不进行任何操作。

这些命令为Redis列表类型的操作提供了丰富的功能,包括插入、获取、移除、修剪和阻塞式弹出等操作。

六.Redis 集合(Set)

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

集合对象的编码可以是 intset 或者 hashtable。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

Redis 集合基本命令

序号命令描述
1SADD key member1 [member2]向集合添加一个或多个成员,如果成员已在集合中则忽略。
2SCARD key获取集合的成员数。
3SDIFF key1 [key2]返回第一个集合与其他集合之间的差异,即存在于第一个集合但不在其他集合中的所有元素。
4SDIFFSTORE destination key1 [key2]返回给定所有集合的差集并存储在 destination 集合中。
5SINTER key1 [key2]返回给定所有集合的交集,即存在于所有集合中的元素。
6SINTERSTORE destination key1 [key2]返回给定所有集合的交集并存储在 destination 集合中。
7SISMEMBER key member判断 member 元素是否是集合 key 的成员,如果是返回 1,否则返回 0。
8SMEMBERS key返回集合中的所有成员。
9SMOVE source destination membermember 元素从 source 集合移动到 destination 集合。如果操作成功,返回 1,否则返回 0。
10SPOP key移除并返回集合中的一个随机元素。
11SRANDMEMBER key [count]返回集合中一个或多个随机元素。如果指定了 count,则返回指定数量的随机元素,且不会移除它们。
12SREM key member1 [member2]移除集合中一个或多个成员,如果成员存在则成功删除。
13SUNION key1 [key2]返回所有给定集合的并集,即存在于任何一个集合中的所有元素。
14SUNIONSTORE destination key1 [key2]所有给定集合的并集存储在 destination 集合中。
15SSCAN key cursor [MATCH pattern] [COUNT count]迭代集合中的元素,用于分页遍历集合。

七.Redis 有序集合(sorted set)

Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)

Redis 有序集合基本命令

序号命令描述
1ZADD key score1 member1 [score2 member2 ...]向有序集合添加一个或多个成员,或者更新已存在成员的分数。
2ZCARD key获取有序集合的成员数。
3ZCOUNT key min max计算在有序集合中指定区间分数的成员数。
4ZINCRBY key increment member对有序集合中指定成员的分数加上增量 increment
5ZINTERSTORE destination numkeys key [key ...]计算给定的一个或多个有序集的交集,并将结果集存储在新的有序集合 destination 中。
6ZLEXCOUNT key min max在有序集合中计算指定字典区间内成员数量。
7ZRANGE key start stop [WITHSCORES]通过索引区间返回有序集合指定区间内的成员,可选地返回成员的分数。
8ZRANGEBYLEX key min max [LIMIT offset count]通过字典区间返回有序集合的成员,可选地进行分页。
9ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]通过分数返回有序集合指定区间内的成员,可选地返回成员的分数并进行分页。
10ZRANK key member返回有序集合中指定成员的排名(按分数从小到大排序)。
11ZREM key member [member ...]移除有序集合中的一个或多个成员。
12ZREMRANGEBYLEX key min max移除有序集合中给定的字典区间的所有成员。
13ZREMRANGEBYRANK key start stop移除有序集合中给定的排名区间的所有成员。
14ZREMRANGEBYSCORE key min max移除有序集合中给定的分数区间的所有成员。
15ZREVRANGE key start stop [WITHSCORES]返回有序集中指定区间内的成员,通过索引,但分数从高到低排序,可选地返回成员的分数。
16ZREVRANGEBYSCORE key max min [WITHSCORES]返回有序集中指定分数区间内的成员,分数从高到低排序,可选地返回成员的分数。
17ZREVRANK key member返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序。
18ZSCORE key member返回有序集中,成员的分数值。
19ZUNIONSTORE destination numkeys key [key ...]计算给定的一个或多个有序集的并集,并将结果集存储在新的 key 中。
20ZSCAN key cursor [MATCH pattern] [COUNT count]迭代有序集合中的元素(包括元素成员和元素分值),用于分页遍历有序集合。

;