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