Redis通用命令

time

一个包含两个字符串的列表: 第一个字符串是当前时间(以 UNIX 时间戳格式表示),而第二个字符串是当前这一秒钟已经逝去的微秒数。

127.0.0.1:6379> time
1) "1561539827"
2) "938527"

dbsize

返回当前数据库的 key 的数量。

127.0.0.1:6379> dbsize
(integer) 3
127.0.0.1:6379> set age 26
OK
127.0.0.1:6379> dbsize
(integer) 4

exists : 检查给定key是否存在,若存在返回1,否则返回0

127.0.0.1:6379> exists yhq
(integer) 0
127.0.0.1:6379> set yhq 1
OK
127.0.0.1:6379> exists yhq
(integer) 1

type key

返回键存储值的类型 : none(键不存在) string(字符串或者HyperLogLog) hash(散列)list(列表)set(无序集合)zset(有序集合)

select

切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。默认使用 0 号数据库。默认16个数据库,数据库之间互不相通。

127.0.0.1:6379> dbsize
(integer) 4
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> dbsize
(integer) 0
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> dbsize
(integer) 4

MOVE key db

将当前数据库的 key 移动到给定的数据库 db 当中。如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定 key ,或者 key 不存在于当前数据库,那么 MOVE 没有任何效果。移动成功返回 1 ,失败则返回 0 。

127.0.0.1:6379> select 0
OK
127.0.0.1:6379> set yhq qhh
OK
127.0.0.1:6379> move yhq 1
(integer) 1
127.0.0.1:6379> exists yhq
(integer) 0
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> exists yhq
(integer) 1
127.0.0.1:6379[1]> exists qhh
(integer) 0
127.0.0.1:6379[1]> move qhh 0
(integer) 0
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> exists qhh
(integer) 0
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> set yhq 1
OK
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> set yhq 2
OK
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> move yhq 1
(integer) 0
127.0.0.1:6379> get yhq
"1"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get yhq
"2"

flushdb

清空当前数据库

127.0.0.1:6379> dbsize
(integer) 1
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> dbsize
(integer) 0

flushall

清空所有库

127.0.0.1:6379> set yhq 1
OK
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> set yhq 2
OK
127.0.0.1:6379[1]> flushall
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> keys *
(empty list or set)

注: 如果不小心运行了flushall, 立即 shutdown nosave ,关闭服务器

然后 手工编辑aof文件, 去掉文件中的 “flushall ”相关行, 然后开启服务器,就可以导入回原来数据.

如果,flushall之后,系统恰好bgrewriteaof了,那么aof就清空了,数据丢失.

SHUTDOWN [NOSAVE] [SAVE]

这个命令执行如下操作:

  • 停止所有客户端.

  • 如果配置了save 策略 则执行一个阻塞的save命令.

  • 如果开启了AOF,则刷新aof文件

  • 关闭redis服务进程(redis-server).

如果配置了持久化策略,那么这个命令将能够保证在关闭redis服务进程的时候数据不会丢失. 如果仅仅在客户端执行SAVE 命令,然后 执行QUIT 命令,那么数据的完整性将不会被保证,因为其他客户端可能在执行这两个命令的期间修改数据库的数据.

注意: 一个没有配置持久化策略的redis实例 (没有aof配置, 没有 “save” 命令) 将不会 在执行SHUTDOWN命令的时候转存一个rdb文件, 通常情况下你不想让一个仅用于缓存的rendis实例宕掉

SAVE 和 NOSAVE 修饰符

通过指定一个可选的修饰符可以改变这个命令的表现形式 比如:

  • SHUTDOWN SAVE能够在即使没有配置持久化的情况下强制数据库存储.

  • SHUTDOWN NOSAVE 能够在配置一个或者多个持久化策略的情况下阻止数据库存储. (你可以假想它为一个中断服务的 ABORT 命令).

返回值 : 当发生错误的时候返回状态码 . 当成功的时候不返回任何值,服务退出,链接关闭.

keys pattern : 获得符合规则的键名列表

? 匹配一个字符

 * 匹配任意个(包括0个)字符

[]匹配括号间的任一字符,可以使用"-"符号表示一个范围,如a[b-d]可以匹配"ab","ac","ad"

x匹配字符x,用于转义符号,例如?

> keys yh?
1) "yhq"

* 匹配任意个(包括0个)字符

> keys yh*
1) "yhqqhh"
2) "yhq"

[] 匹配括号间的任一字符,可以用 - 表示一个范围

> keys y[h-z]q
1) "yhq"

x 匹配字符x,用于转义符号,如匹配?就需要?

> keys qh?
1) "qhh"
2) "qh?"
> keys qh?
1) "qh?"

 rename : 成功返回ok,失败返回错误(当旧名称和新名称相同,或者旧名称不存在时,返回一个错误。当新名称已存在时,将覆盖旧值)

 

> get qhh
"132"
> rename qhh yhq
OK
> get yhq
"132"
> rename yh yhq
(error) ERR no such key

 

renamenx : 修改名称,和renamenx不同的是,修改成功返回1,如果新名称存在返回0

 

> renamenx yhq qhh
(integer) 0
> renamenx yhq qhhyhq
(integer) 1

 

randomkey : 当数据库不为空时,随机返回key,当数据库为空时,返回nil

 

> randomkey
"qhhyhq"
> randomkey
"qhh"

 

 del : 删除键,可以删除多个键,返回值是删除键的个数

> del yhq
1
> del yhq
0

 

 

 

 

 

scan(不会阻塞服务器,可能重复) sscan hscan zscan

 

原文地址:https://www.cnblogs.com/yhq-qhh/p/10328892.html