先启动redis服务,使用redis-cli客户端连到redis数据库里面
要点:
(1)keys 后面可以指定正则表达式
(2)在生产环境下建议禁用keys命令,因为这个命令会查询过滤redis中的所有数据,可能会造成服务阻塞,影响redis执行效率。
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> keys *
1) "a"
127.0.0.1:6379> keys a*
1) "a"
scan命令用于迭代当前数据库中的key集合,它支持增量式迭代,每次执行只会返回少量元素,所以它可以用于生产环境,而不会出现像keys 命令那样可能会阻塞服务器的问题。
127.0.0.1:6379> set a1 1
OK
127.0.0.1:6379> set a2 2
OK
127.0.0.1:6379> set a3 3
OK
127.0.0.1:6379> set a4 4
OK
127.0.0.1:6379> set a5 1
OK
127.0.0.1:6379> set a6 1
OK
127.0.0.1:6379> set a7 1
OK
127.0.0.1:6379> set a8 1
OK
127.0.0.1:6379> set a9 1
OK
127.0.0.1:6379> set a10 1
OK
127.0.0.1:6379> set a11 1
OK
127.0.0.1:6379> scan 0
1) "3"
2) 1) "a6"
2) "a7"
3) "a8"
4) "a11"
5) "a1"
6) "a9"
7) "a4"
8) "a2"
9) "a3"
10) "a"
127.0.0.1:6379> scan 3
1) "0"
2) 1) "a5"
2) "a10"
所以,如果redis中有很多key,我们可以使用scan命令来迭代,一次迭代一部分,不至于造成阻塞,如果redis中的key比较少,那么使用keys * 也是可以的。
指定返回的数量
127.0.0.1:6379> scan 0 count 5
1) "12"
2) 1) "a6"
2) "a7"
3) "a8"
4) "a11"
5) "a1"
127.0.0.1:6379> exists a
(integer) 1
127.0.0.1:6379> exists b
(integer) 0
127.0.0.1:6379> del a
(integer) 1
也支持一次删除多个键
127.0.0.1:6379> del a1 a2
(integer) 2
返回值可能是这五种类型(string,hash,list,set,zset)
127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> type a
string
127.0.0.1:6379> help set
SET key value [expiration EX seconds|PX milliseconds] [NX|XX]
summary: Set the string value of a key
since: 1.0.0
group: string
不过我还是习惯使用 ctrl+c 退出redis-cli客户端
注意:Redis的命令不区分大小写,但是key的名称需要区分大小写!
Redis默认支持16个数据库,通过databases参数控制的,这个参数在redis.conf配置文件中
[root@bigdata01 redis-5.0.9]# cat redis.conf |grep databases
# Set the number of databases. The default database is DB 0, you can select
# dbid is a number between 0 and 'databases'-1
databases 16
# Compress string objects using LZF when dump .rdb databases?
每个数据库对外都是以一个从0开始的递增数字命名,不支持自定义。Redis默认选择的是0号数据库,可以通过 select 命令切换。
具体在工作中怎么用都行,只要理解它的特性就可以了
注意:
(1)但是有一点需要注意:多个数据库之间并不是完全隔离的,如果使用flushall命令,则会清空redis中所有数据库内的数据。
(2)在redis中使用多个库,并不能提高redis的存储能力,因为默认这16个库共用redis的内存存储空间,如果想要提高redis的存储能力,需要给我们的服务器增加内存才可以。
127.0.0.1:6379> select 10
OK
127.0.0.1:6379[10]> set c 10
OK
127.0.0.1:6379[10]> keys *
1) "c"
127.0.0.1:6379[10]> flushall
OK
127.0.0.1:6379[10]> select 0
OK
127.0.0.1:6379> keys *
(empty list or set)
清空当前数据库中的数据,可以使用flushdb
127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> set b 1
OK
127.0.0.1:6379[1]> flushdb
OK
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> keys *
1) "a"
127.0.0.1:6379>