博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis常用基础指令
阅读量:3960 次
发布时间:2019-05-24

本文共 7145 字,大约阅读时间需要 23 分钟。

1、Redis keys命令

Redis Keys 命令用于查找所有符合给定模式 pattern 的 key 。。

基本语法

redis KEYS 命令基本语法如下:

redis 127.0.0.1:6379> KEYS PATTERN

可用版本

>= 1.0.0

返回值

符合给定模式的 key 列表 (Array)。

实例

首先创建一些 key,并赋上对应值:

redis 127.0.0.1:6379> SET w3c1 redisOKredis 127.0.0.1:6379> SET w3c2 mysqlOKredis 127.0.0.1:6379> SET w3c3 mongodbOK

查看以w3c开头的所有key

127.0.0.1:6379[2]> keys w3c*1) "w3c1"2) "w3c3"3) "w3c2"

获取 redis 中所有的 key 可用使用 * 。

127.0.0.1:6379[2]> keys *1) "w3c1"2) "w3c3"3) "w3c2"

2、Redis Expireat 命令

Redis Expireat 命令用于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。key 过期后将不再可用。

语法

redis Expireat 命令基本语法如下:

redis 127.0.0.1:6379> Expireat KEY_NAME TIME_IN_UNIX_TIMESTAMP

返回值

设置成功返回 1 。

当 key 不存在或者不能为 key 设置过期时间时返回 0 。

实例

首先创建一个 key 并赋值:

127.0.0.1:6379[2]> set name zhangsan

为 key 设置过期时间:

#########################################################################  EXPIREAT 单位为毫秒127.0.0.1:6379[2]> EXPIREAT name 10  # 以毫秒为单位 设置成功返回1 (integer) 1127.0.0.1:6379[2]> ttl name          # ttl key 可以查看这个key所生育过期时间 返回秒数(integer) -2						 # 返回 -2 该key已被过期#########################################################################   EXPIRE  单位为秒127.0.0.1:6379[2]> EXPIRE name 15 (integer) 1127.0.0.1:6379[2]> ttl name(integer) 9

3、Redis EXISTS 命令

Redis EXISTS 命令用于检查给定 key 是否存在。

语法

redis EXISTS 命令基本语法如下:

redis 127.0.0.1:6379> EXISTS KEY_NAME

返回值

若 key 存在返回 1 ,否则返回 0

127.0.0.1:6379[2]> set name 王五OK127.0.0.1:6379[2]> exists name(integer) 1127.0.0.1:6379[2]> exists age(integer) 0

4、Redis Renamenx 命令

Redis Renamenx 命令用于在新的 key 不存在时修改 key 的名称 。

key重命名:当为一个key重命名的时候、如果重命名的名称在当前数据库中存在那么设置失败、返回0

如果不存在那么设置成功、返回1

语法

redis Renamenx 命令基本语法如下:

redis 127.0.0.1:6379> RENAMENX OLD_KEY_NAME NEW_KEY_NAME

返回值

修改成功时,返回 1 。 如果 NEW_KEY_NAME 已经存在,返回 0 。

127.0.0.1:6379[2]> set oldplay zhangsan				# 设置一个新 keyOK127.0.0.1:6379[2]> set xianplay zhangsan			# 设置第二个新 keyOK127.0.0.1:6379[2]> keys *							# 查看全部 key1) "xianplay"2) "oldplay"127.0.0.1:6379[2]> RENAMENX oldplay new_play		# 修改第一个key的名称(integer) 1											# 成功返回1 127.0.0.1:6379[2]> keys *							# 再次查看已被修改1) "xianplay"2) "new_play"127.0.0.1:6379[2]> RENAMENX new_play xianplay		# 修改第二个key的名称为一个已存在的key 失败(integer) 0

5、Redis Pttl 命令

Redis Pttl 命令以毫秒为单位返回 key 的剩余过期时间。

语法

redis Pttl 命令基本语法如下:

redis 127.0.0.1:6379> PTTL KEY_NAME

返回值

当 key 不存在时,返回 -2 。

当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以毫秒为单位,返回 key 的剩余生存时间。

**注意:**在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。

127.0.0.1:6379[2]> set name zhangsan OK127.0.0.1:6379[2]> EXPIRE name 15(integer) 1127.0.0.1:6379[2]> ttl name(integer) 12127.0.0.1:6379[2]> PTTL name(integer) 6857127.0.0.1:6379[2]> ttl name(integer) 1127.0.0.1:6379[2]> ttl name(integer) -2127.0.0.1:6379[2]> EXPIRE name 15(integer) 0127.0.0.1:6379[2]> keys *(empty list or set)127.0.0.1:6379[2]> set name zhangsanOK127.0.0.1:6379[2]> EXPIRE name 15(integer) 1127.0.0.1:6379[2]> ttl name     # 剩余时间   pttl返回毫秒数  ttl返回秒数(integer) 9#########################################################################     pttl返回毫秒数 对应 EXPIREAT 设置的过期时间    ###################     ttl返回毫秒数  对应 EXPIRE   设置的过期时间    ################################################################################

6、Redis DEL 命令

Redis DEL 命令用于删除已存在的键。不存在的 key 会被忽略。

语法

redis DEL 命令基本语法如下:

redis 127.0.0.1:6379> DEL KEY_NAME

返回值

被删除 key 的数量。

实例

首先,我们在 redis 中创建一个 key 并设置值。

redis 127.0.0.1:6379> SET w3ckey redisOK

现在我们删除已创建的 key。

redis 127.0.0.1:6379> DEL w3ckey(integer) 1127.0.0.1:6379[2]> del name   # 不存在的key会被忽略  返回  0(integer) 0

7、Redis Expire 命令

Redis Expire 命令用于设置 key 的过期时间。key 过期后将不再可用。

语法

redis Expire 命令基本语法如下:

redis 127.0.0.1:6379> Expire KEY_NAME TIME_IN_SECONDS

返回值

设置成功返回 1 。

当 key 不存在或者不能为 key 设置过期时间时返回 0 。

127.0.0.1:6379[2]> set name zhangsan OK127.0.0.1:6379[2]> keys *1) "name"127.0.0.1:6379[2]> EXPIRE name 20(integer) 1127.0.0.1:6379[2]> ttl name(integer) 15

8、Redis DUMP 命令

Redis DUMP 命令用于序列化给定 key ,并返回被序列化的值。

语法

redis DUMP 命令基本语法如下:

redis 127.0.0.1:6379> DUMP KEY_NAME

返回值

如果 key 不存在,那么返回 nil 。 否则,返回序列化之后的值。

127.0.0.1:6379[2]> set green "hello word redis!"   # 设置一个keyOK127.0.0.1:6379[2]> DUMP green    # 序列化 存在的 key  返回序列化后的值"\x00\x11hello word redis!\t\x00k\xcd\x8b\xe9\xad\x88\xbe\xb6"127.0.0.1:6379[2]> dump age      # 序列化不存在的 key 返回null(nil)

9、Redis RANDOMKEY 命令

Redis RANDOMKEY 命令从当前数据库中随机返回一个 key 。

语法

redis RANDOMKEY 命令基本语法如下:

redis 127.0.0.1:6379> RANDOMKEY

返回值

当数据库不为空时,返回一个 key 。 当数据库为空时,返回 nil 。

127.0.0.1:6379[2]> keys *1) "green"2) "email"3) "age"4) "name"127.0.0.1:6379[2]> RANDOMKEY"name"127.0.0.1:6379[2]> RANDOMKEY"name"127.0.0.1:6379[2]> RANDOMKEY"age"127.0.0.1:6379[2]> RANDOMKEY"name"127.0.0.1:6379[2]> RANDOMKEY"age"127.0.0.1:6379[2]> RANDOMKEY"age"127.0.0.1:6379[2]> RANDOMKEY"age"127.0.0.1:6379[2]> RANDOMKEY"name"127.0.0.1:6379[2]> RANDOMKEY"green"127.0.0.1:6379[2]> RANDOMKEY"green"127.0.0.1:6379[2]> RANDOMKEY"name"

10、Redis MOVE 命令

Redis MOVE 命令用于将当前数据库的 key 移动到给定的数据库 db 当中。

语法

redis Move 命令基本语法如下:

redis 127.0.0.1:6379> MOVE KEY_NAME DESTINATION_DATABASE

返回值

移动成功返回 1 ,失败则返回 0 。

# 切换数据库  select index(可选0-15)### 这里我们为了方便后续的操作、使用 2 和 3 好数据库127.0.0.1:6379[2]> keys *    #  查询2 号库中所有的key1) "green"2) "email"3) "age"4) "name"127.0.0.1:6379[2]> select 3  # 切换到 3 号库OK127.0.0.1:6379[3]> keys *    # 查询 3 号库所有的(empty list or set)127.0.0.1:6379[3]> select 2  # 在切换到 2 号库OK127.0.0.1:6379[2]> MOVE name 3 # 将 2 号库中 key为name 移动到 3 号库(integer) 1127.0.0.1:6379[2]> keys *     # 查看2 号库中的name确实不见了1) "green"2) "email"3) "age"127.0.0.1:6379[2]> SELECT 3	  # 切换到3 号库OK127.0.0.1:6379[3]> keys *     # 查看3 号库确实移动过来了1) "name"127.0.0.1:6379[3]> SELECT 2   OK127.0.0.1:6379[2]> set name zhansganOK127.0.0.1:6379[2]> SELECT 3OK127.0.0.1:6379[3]> MOVE name 2  # 移动 3 号库中key为name的数据到2 号库中、返回0 说明不能移动当前key到指定库中已存在相同名称的 key (integer) 0

相同名称的key不能移动

11、Redis PERSIST 命令

Redis PERSIST 命令用于移除给定 key 的过期时间,使得 key 永不过期。

语法

redis PERSIST 命令基本语法如下:

redis 127.0.0.1:6379> PERSIST KEY_NAME

返回值

当过期时间移除成功时,返回 1 。 如果 key 不存在或 key 没有设置过期时间,返回 0 。

127.0.0.1:6379[2]> keys *1) "green"2) "email"3) "age"4) "name"127.0.0.1:6379[2]> EXPIRE name 60    # 设置name的过期时间60s(integer) 1127.0.0.1:6379[2]> ttl name     	 # 查看过期时间(integer) 57127.0.0.1:6379[2]> PERSIST name		 # 移出过期时间 (integer) 1127.0.0.1:6379[2]> ttl name(integer) -1127.0.0.1:6379[2]> keys *            # 确实还存在1) "green"2) "email"3) "age"4) "name"

12、Redis Rename 命令

Redis Rename 命令用于修改 key 的名称 。

返回值

改名成功时提示 OK ,失败时候返回一个错误。

当 OLD_KEY_NAME 和 NEW_KEY_NAME 相同,或者 OLD_KEY_NAME 不存在时,返回一个错误。 当 NEW_KEY_NAME 已经存在时, RENAME 命令将覆盖旧值。

127.0.0.1:6379[2]> keys *1) "green"2) "email"3) "age"4) "name"127.0.0.1:6379[2]> get name"zhansgan"127.0.0.1:6379[2]> RENAME name ageOK127.0.0.1:6379[2]> get name(nil)127.0.0.1:6379[2]> keys *1) "green"2) "age"3) "email"127.0.0.1:6379[2]> get age"zhansgan"

总结:就是为key设置新的名称的时候如果新名称不存在那么就设置成功、如果设置的新名称存在、那么就将被修改key名称的value覆盖到已存在key名称的key的value中替换掉、并且删除被修改的key

13、Redis Type 命令

Redis Type 命令用于返回 key 所储存的值的类型。

语法

redis Renamenx 命令基本语法如下:

redis 127.0.0.1:6379> TYPE KEY_NAME

返回值

返回 key 的数据类型,数据类型有:

  • none (key不存在)
  • string (字符串)
  • list (列表)
  • set (集合)
  • zset (有序集)
  • hash (哈希表)
# 字符串redis> SET weather "sunny"OKredis> TYPE weatherstring # 列表 redis> LPUSH book_list "programming in scala"(integer) 1redis> TYPE book_listlist # 集合 redis> SADD pat "dog"(integer) 1redis> TYPE patset

转载地址:http://ddqzi.baihongyu.com/

你可能感兴趣的文章
CImg库编译使用.
查看>>
Canvas入门(一)
查看>>
一.JavaScript 基础
查看>>
7.ECMAScript 继承
查看>>
HTML DOM
查看>>
AJAX 基础
查看>>
JSON 基础
查看>>
J2EE监听器Listener接口大全[转]
查看>>
cookie、session、sessionid 与jsessionid[转]
查看>>
常见Oracle HINT的用法
查看>>
JAVA中各类CACHE机制实现的比较 [转]
查看>>
PL/SQL Developer技巧
查看>>
3-python之PyCharm如何新建项目
查看>>
15-python之while循环嵌套应用场景
查看>>
17-python之for循环
查看>>
18-python之while循环,for循环与else的配合
查看>>
19-python之字符串简单介绍
查看>>
20-python之切片详细介绍
查看>>
P24-c++类继承-01详细的例子演示继承的好处
查看>>
P8-c++对象和类-01默认构造函数详解
查看>>