前言
前面学习了redis的五种基本数据类型和每种数据类型常用的一些方法,今天来学习一下五种基本数据类型以外的常用命令。
-
keys
keys pattern 用于显示符合条件的额key,可以使用*通配符筛选。
127.0.0.1:6379> keys * 1) "zset1" 2) "set1" 3) "set2" 4) "list1" 5) "list2" 127.0.0.1:6379> keys list* 1) "list1" 2) "list2" 127.0.0.1:6379> keys zset1 1) "zset1"
-
exists
exists key [key ... ]用于判定key是否存在。
-
expire
expire key seconds 用于设定key的过期时间。
-
ttl
ttl key 用于查看key的剩余有效时间,未设定过期时间则返回-1,设定过期时间返回剩余有效时间,已过期返回-2。
-
persist
取消过期时间设定。
// 判定key是否存在 127.0.0.1:6379> exists set1 (integer) 1 // 设定过期时间为100 127.0.0.1:6379> expire set1 100 (integer) 1 // 查看过期时间 127.0.0.1:6379> ttl set1 (integer) 96 // 查看未设定过期时间的key,返回-1 127.0.0.1:6379> ttl list1 (integer) -1 // 查看剩余过期时间,返回剩余过期时间 127.0.0.1:6379> ttl set1 (integer) 32 127.0.0.1:6379> ttl set1 (integer) 4 127.0.0.1:6379> ttl set1 (integer) -2 // 已过期返回 -2 127.0.0.1:6379> ttl set1 (integer) -2
-
select
select index 用于切换数据库,redis有0-15,共16个数据库,默认数据库为0。redis3.x版本引入集群以前,为了维护数据的安全和备份数据的需要,划分了16个数据库,存储在不同的服务器(分片技术),用以确保数据安全。
-
move
move key db用于将指定key移至指定数据库。
// 前面的默认数据存放在0号数据库 127.0.0.1:6379> select 0 OK 127.0.0.1:6379> keys * 1) "zset1" 2) "set2" 3) "list1" 4) "list2" // 切库并查看数据为空 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> keys * (empty list or set) // 将数据库0中的zset1移至数据库1 127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> move zset1 1 (integer) 1 127.0.0.1:6379> keys zset1 (empty list or set) 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> keys zset1 1) "zset1"
-
randomkey
随机返回一个key(想不到有什么用途?)。
127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> randomkey "list1" 127.0.0.1:6379> randomkey "list1" 127.0.0.1:6379> randomkey "list2"
-
rename
rename key newkey 重命名。
127.0.0.1:6379> keys * 1) "set2" 2) "list1" 3) "list2" 127.0.0.1:6379> rename list1 list0 OK 127.0.0.1:6379> keys * 1) "list0" 2) "set2" 3) "list2"
-
echo
输出打印。
-
dbsize
获取db中数据的个数。
-
info
info section返回当前数据库的信息。
-
config get
返回配置信息。
-
flunshdb/flushall
清空(当前)数据库/清空所有库。
127.0.0.1:6379> echo 123 "123" 127.0.0.1:6379> dbsize (integer) 3 127.0.0.1:6379> info # Server redis_version:5.0.5 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:84ff8fdea17c09ed redis_mode:standalone ... ... 127.0.0.1:6379> config get * 1) "dbfilename" 2) "dump.rdb" 3) "requirepass" 4) "" 5) "masterauth" 6) "" 7) "cluster-announce-ip" 8) "" 127.0.0.1:6379> keys * 1) "list0" 2) "set2" 3) "list2" 127.0.0.1:6379> flushdb OK 127.0.0.1:6379> keys * (empty list or set) 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> keys * 1) "zset1" // 清空所有数据,info查看keyspace可以看到所有数据库均无数据 127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> flushall 127.0.0.1:6379> info ... ... # Keyspace