建设网站的华丽语言,搭建企业网站宽带多大,百度秒收录的网站,百度推广代理查询文章目录 一、Redis概述1.1 KEYS#xff1a;查看符合模板的所有 key1.2 DEL#xff1a;删除一个指定的 key1.3 EXISTS#xff1a;判断 key 是否存在1.4 EXPIRE#xff1a;给一个 key 设置有效期#xff0c;有效期到期时该 key 会被自动删除1.5 TTL#xff1a;查看一个 ke… 文章目录 一、Redis概述1.1 KEYS查看符合模板的所有 key1.2 DEL删除一个指定的 key1.3 EXISTS判断 key 是否存在1.4 EXPIRE给一个 key 设置有效期有效期到期时该 key 会被自动删除1.5 TTL查看一个 key 的剩余有效期1.6 COPY复制 Redis 数据库中的数据到另一个数据库中1.7 MOVE将 Redis 中的指定键移动到另一个数据库中1.8 TOUCH修改指定键的最后访问时间1.9 RENAME: 修改一个键的名称1.10 RENAMENX新名称的键不存在时执行修改1.11 TYPE:返回键所存储的值的类型1.12 PERSIST:移除 Redis 键的过期时间 一、Redis概述
Redis概述 1.1 KEYS查看符合模板的所有 key KEYS 命令在处理大量数据时可能会影响 Redis 服务器的性能因为它会遍历所有 key 来寻找匹配的项。 在生产环境中应该谨慎使用 KEYS 命令尤其是在数据量巨大的情况下。
redis MSET firstname Jack lastname Stuntman age 35
OK
redis KEYS *name*
1) lastname
2) firstname
redis KEYS a??
1) age
redis KEYS *
1) lastname
2) age
3) firstname
redis
首先使用 MSET 命令设置了多个 key-value 对分别为 firstname、lastname 和 age。然后使用 KEYS 命令查找符合指定模式的 key。
第一个 KEYS 命令使用模式 *name*返回所有包含 “name” 的 key即 lastname 和 firstname。第二个 KEYS 命令使用模式 a??返回所有以字母 “a” 开头并且后面有两个字符的 key即 age。最后一个 KEYS 命令使用模式 *返回所有存在的 key即 lastname、age 和 firstname。 1.2 DEL删除一个指定的 key 在 Redis 中DEL 命令用于删除指定的 key并返回成功删除的 key 的数量。 redis SET key1 Hello
OK
redis SET key2 World
OK
redis DEL key1 key2 key3
(integer) 2
redis
使用 DEL 命令删除了两个 key即 key1 和 key2。因为这两个 key 存在且被成功删除所以返回的结果是 (integer) 2。
如果执行 DEL 命令删除了不存在的 key那么返回的结果将是 (integer) 0表示没有成功删除任何 key。 1.3 EXISTS判断 key 是否存在 EXISTS 命令用于判断给定的 key 是否存在于 Redis 中。它可以同时接受多个 key并返回存在的 key 的数量。如果 key 存在则返回 1如果 key 不存在则返回 0。
redis SET key1 Hello
OK
redis EXISTS key1
(integer) 1
redis EXISTS nosuchkey
(integer) 0
redis SET key2 World
OK
redis EXISTS key1 key2 nosuchkey
(integer) 2
redis 使用 SET 命令分别设置了 key1 和 key2 的值。然后使用 EXISTS 命令来检查指定的 key 是否存在。
第一个 EXISTS 命令执行 EXISTS key1返回结果为 (integer) 1表示 key1 存在。第二个 EXISTS 命令执行 EXISTS nosuchkey返回结果为 (integer) 0表示 nosuchkey 不存在。接下来执行 EXISTS key1 key2 nosuchkey返回结果为 (integer) 2表示其中两个 key 存在即 key1 和 key2而 nosuchkey 不存在。
Tips 如果在参数中多次提到相同的现有键它将被计算多次。如果somekey存在exists somekey somekey将返回2。 1.4 EXPIRE给一个 key 设置有效期有效期到期时该 key 会被自动删除 EXPIRE key seconds [NX | XX | GT | LT]key要设置过期时间的键名。 seconds过期时间单位为秒。键在指定秒数后将会被自动删除。 NX可选仅在键不存在时设置过期时间。 XX可选仅在键已存在时设置过期时间。 GT可选仅在键的当前过期时间大于给定过期时间时设置过期时间。 LT可选仅在键的当前过期时间小于给定过期时间时设置过期时间。 当 NX 和 XX 选项都未指定时默认行为是设置键的过期时间如果键不存在则创建键并设置过期时间。 NX 和 XX 选项可以与 GT 或 LT 选项结合使用从而提供更精确的过期时间控制。 设置键 mykey 在 60 秒后过期 EXPIRE mykey 60仅当键 mykey 存在时设置它在 120 秒后过期 EXPIRE mykey 120 XX仅当键 mykey 不存在时设置它在 300 秒后过期 EXPIRE mykey 300 NX仅当键 mykey 的当前过期时间大于 180 秒时设置它在 180 秒后过期 EXPIRE mykey 180 GT仅当键 mykey 的当前过期时间小于 240 秒时设置它在 240 秒后过期 EXPIRE mykey 240 LTredis SET mykey Hello
OK
redis EXPIRE mykey 10
(integer) 1
redis TTL mykey
(integer) 10
redis SET mykey Hello World
OK
redis TTL mykey
(integer) -1
redis EXPIRE mykey 10 XX
(integer) 0
redis TTL mykey
(integer) -1
redis EXPIRE mykey 10 NX
(integer) 1
redis TTL mykey
(integer) 10
redis 1.5 TTL查看一个 key 的剩余有效期 TTL 命令用于获取 Redis 键的剩余生存时间Time To LiveTTL。
TTL keykey要查询剩余生存时间的键名。
返回值
redis SET mykey Hello
OK
redis EXPIRE mykey 10
(integer) 1
redis TTL mykey
(integer) 10
redis 返回键的剩余生存时间TTL 如果键不存在或者键没有设置过期时间返回 -1。如果键存在且设置了过期时间返回剩余生存时间的秒数。 返回 -1 表示键不存在或者键没有设置过期时间。 返回 0 表示键存在并且没有剩余生存时间即键已经过期。 TTL 返回的时间单位是秒。 1.6 COPY复制 Redis 数据库中的数据到另一个数据库中 COPY 命令用于复制 Redis 数据库中的数据到另一个数据库中。
COPY source destination [DB destination-db] [REPLACE]source要复制数据的源键名。 destination目标键名复制后的数据将存储在这个键中。 DB destination-db可选目标数据库的索引号。默认为 0即默认数据库。 REPLACE可选如果目标键 destination 已存在且有数据使用 REPLACE 选项将会覆盖现有数据。如果未指定 REPLACE并且目标键已存在则 COPY 命令将会失败。 source 和 destination 参数必须是有效的键名。 可以指定一个不同的目标数据库索引号使数据被复制到该索引号对应的数据库中。 使用 REPLACE 选项可以在目标键已存在时覆盖现有数据否则命令会失败。
示例 将键 mykey 中的数据复制到键 mykey_copy 中 COPY mykey mykey_copy将键 mylist 中的数据复制到键 mylist_backup 中并指定目标数据库索引号为 1 COPY mylist mylist_backup DB 1将键 myset 中的数据复制到键 myset_new 中如果 myset_new 已存在则覆盖现有数据 COPY myset myset_new REPLACE1.7 MOVE将 Redis 中的指定键移动到另一个数据库中 MOVE 命令用于将 Redis 中的指定键移动到另一个数据库中。
MOVE key dbkey要移动的键名。 db目标数据库的索引号用于指定移动到哪个数据库中。 key 参数是要移动的键名必须存在于当前数据库中。 db 参数是目标数据库的索引号用于指定移动到哪个数据库中。索引号从 0 开始Redis 默认支持 16 个数据库可以通过配置进行扩展。 将键 mykey 移动到数据库索引号为 1 的数据库中 MOVE mykey 1如果目标数据库 db 不存在例如超过了默认的 0 到 15 的范围那么 MOVE 命令会返回错误。 如果键 key 已经存在于目标数据库 db 中那么 MOVE 命令将无效不会导致任何数据移动。 当键成功移动到目标数据库时返回 1。 如果键已经存在于目标数据库中或者数据库索引号超出范围返回 0。 1.8 TOUCH修改指定键的最后访问时间 在 Redis 中TOUCH 命令用于修改指定键的最后访问时间last access time从而更新键的过期时间。
TOUCH key [key ...]key一个或多个要更新最后访问时间的键名。 key 参数是一个或多个键名用空格分隔。 TOUCH 命令主要用于更新 Redis 键的最后访问时间 持久化存储如果键设置了过期时间通过 TOUCH 命令可以防止 Redis 自动清除这些键。活跃用户追踪可以用于跟踪哪些键最近被访问用作活跃用户的标记或统计。LRU最近最少使用策略Redis 在使用 LRU 策略管理内存时可以通过 TOUCH 命令更新键的访问时间从而影响键的淘汰顺序。 更新键 mykey 的最后访问时间 TOUCH mykey更新多个键的最后访问时间 TOUCH key1 key2 key3TOUCH 命令仅更新键的最后访问时间不改变键的值或其他属性。如果指定的键不存在TOUCH 命令会忽略该键不会报错。TOUCH 命令可以用于确保键不会在达到过期时间后被 Redis 主动清理适用于需要持久化存储的场景。
返回值
redis SET key1 Hello
OK
redis SET key2 World
OK
redis TOUCH key1 key2
(integer) 2
redis
返回更新的键数目即成功更新了多少个键的最后访问时间。 1.9 RENAME: 修改一个键的名称 在 Redis 中RENAME 命令用于修改一个键的名称。
RENAME key newkeykey要修改名称的键名。 newkey键的新名称。 RENAME 命令用于将一个键的名称修改为新的名称。如果新的键名已经存在则会覆盖原有键的值。 将键 mykey 的名称修改为 newkey RENAME mykey newkey如果键 key 不存在则 RENAME 命令会返回错误。如果键 newkey 已经存在它的值将被覆盖。
返回值
redis SET mykey Hello
OK
redis RENAME mykey myotherkey
OK
redis GET myotherkey
Hello
redis
当命令成功执行时返回 OK。 1.10 RENAMENX新名称的键不存在时执行修改 在 Redis 中RENAMENX 命令用于将一个键的名称修改为新的名称但只在新名称的键不存在时执行修改。
RENAMENX key newkeykey要修改名称的键名。 newkey键的新名称。 RENAMENX 命令会检查新名称 newkey 是否已经存在。 如果 newkey 已经存在则不执行任何操作返回 0。 如果 newkey 不存在则将 key 的名称修改为 newkey。 如果 key 不存在则 RENAMENX 命令会返回错误。 RENAMENX 命令是原子操作即在执行过程中不会出现部分成功的情况。
redis SET mykey Hello
OK
redis SET myotherkey World
OK
redis RENAMENX mykey myotherkey
(integer) 0
redis GET myotherkey
World
redis
当成功将 key 的名称修改为 newkey 时返回 1。如果 newkey 已经存在没有执行修改操作则返回 0。 1.11 TYPE:返回键所存储的值的类型 TYPE 命令用于返回键所存储的值的类型。
TYPE keykey要查询类型的键名。
redis SET key1 value
OK
redis LPUSH key2 value
(integer) 1
redis SADD key3 value
(integer) 1
redis TYPE key1
string
redis TYPE key2
list
redis TYPE key3
set
redis 返回值
返回键存储值的类型可能的返回值有 none键不存在。string字符串类型。list列表类型。set集合类型。zset有序集合类型。hash哈希类型。stream流类型。
注意事项
如果键不存在命令会返回 none。如果键存储的值类型不在预期范围内可能是由于该键已被其他操作修改。在 Redis 中同一个键可以在不同时间存储不同类型的值。 1.12 PERSIST:移除 Redis 键的过期时间 PERSIST 命令用于移除 Redis 键的过期时间使得键成为永久有效的不再自动过期。
PERSIST keykey要移除过期时间的键名。
返回值
redis SET mykey Hello
OK
redis EXPIRE mykey 10
(integer) 1
redis TTL mykey
(integer) 10
redis PERSIST mykey
(integer) 1
redis TTL mykey
(integer) -1
redis
如果成功移除过期时间返回 1。如果键不存在过期时间或者键不存在返回 0。
注意事项
只有带有过期时间的键才能使用 PERSIST 命令来移除过期时间。如果键之前已经被设置为永不过期即没有设置过期时间PERSIST 命令会返回 0。移除过期时间后键将永久存在于 Redis 中直到显式删除。 更多的通用命令可以去官网https://redis.io/docs/latest/commands/?groupgeneric查看哦~