Redis学习笔记-常用命令篇(Centos7)
redis提供了丰富的命令,这些命令可以在linux终端使用。在各类语言中,这些命令都有对应的方法。
一、键值相关
1、keys
返回满足给定pattern的所有key
127.0.0.1:6379> keys * 1) "key1" 2) "num" 3) "list" 4) "qq" 5) "key2" 6) "key3" 7) "hashkey" 8) "setkey" 9) "listkey2" 10) "num2" 11) "num1" 12) "listkey" 13) "listkey1" 14) "key5" 15) "test" 16) "name" 17) "zsetkey" 18) "setkey-1" 19) "setkey-2" 20) "num3" 21) "key4" 22) "num4" 127.0.0.1:6379> keys num* 1) "num" 2) "num2" 3) "num1" 4) "num3" 5) "num4"
2、exists
确认key是否存在
127.0.0.1:6379> exists name (integer) 1 127.0.0.1:6379> exists key (integer) 0
3、del
删除一个key
127.0.0.1:6379> exists qq (integer) 1 127.0.0.1:6379> del qq (integer) 1 127.0.0.1:6379> exists qq (integer) 0
4、expire
设置一个key的过期时间(单位为秒)
127.0.0.1:6379> ttl name (integer) -1 127.0.0.1:6379> expire name 10 (integer) 1 127.0.0.1:6379> ttl name (integer) 8 127.0.0.1:6379> ttl name (integer) 5 127.0.0.1:6379> ttl name (integer) 0 127.0.0.1:6379> ttl name (integer) -2 127.0.0.1:6379> get name (nil)
5、move
将当前数据库中的key转移到其它数据库中
127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> get test (nil) 127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> get test "redis test" 127.0.0.1:6379> move test 1 (integer) 1 127.0.0.1:6379> get test (nil) 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> get test "redis test"
6、persist
移除给定key的过期时间
127.0.0.1:6379> ttl list (integer) -1 127.0.0.1:6379> expire list 300 (integer) 1 127.0.0.1:6379> ttl list (integer) 296 127.0.0.1:6379> persist list (integer) 1 127.0.0.1:6379> ttl list (integer) -1
7、randomkey
随机返回一个key
127.0.0.1:6379> randomkey "num" 127.0.0.1:6379> randomkey "key5" 127.0.0.1:6379> randomkey "num3"
8、rename/renamenx
重命名key
127.0.0.1:6379> rename list list-new OK 127.0.0.1:6379> exists list (integer) 0 127.0.0.1:6379> exists list-new (integer) 1 127.0.0.1:6379> keys list* 1) "listkey2" 2) "list-new" 3) "listkey" 4) "listkey1" 127.0.0.1:6379> rename listkey listkey1 OK 127.0.0.1:6379> exists listkey (integer) 0 127.0.0.1:6379> exists listkey1 (integer) 1 127.0.0.1:6379> renamenx listkey1 listkey2 (integer) 0 127.0.0.1:6379> renamenx listkey1 listkey3 (integer) 1
9、type
返回值的类型
127.0.0.1:6379> type num string 127.0.0.1:6379> type list-new list 127.0.0.1:6379> type hashkey hash 127.0.0.1:6379> type setkey set 127.0.0.1:6379> type zsetkey zset
二、服务器相关
1、ping
测试是否正常连接
127.0.0.1:6379> ping PONG 127.0.0.1:6379> ping aaa "aaa" # 关闭redis服务器 127.0.0.1:6379> shutdown Could not connect to Redis at 127.0.0.1:6379: Connection refused # 开启服务器 not connected> ping aaa "aaa" 127.0.0.1:6379> ping PONG
2、echo
打印内容
127.0.0.1:6379> echo message "message" 127.0.0.1:6379> echo ping "ping"
3、select
选择数据库,redis数据库编号范围是0~15,默认登录0
127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> select 15 OK 127.0.0.1:6379[15]> select 16 (error) ERR invalid DB index 127.0.0.1:6379[15]> select 0 OK
4、quie/exit
退出连接。
[root@localhost ~]# redis-cli 127.0.0.1:6379> quit [root@localhost ~]# [root@localhost ~]# redis-cli 127.0.0.1:6379> exit [root@localhost ~]#
5、dbsize
返回当前数据库中key的数量
127.0.0.1:6379> dbsize
(integer) 18
6、info
获取服务器的信息和统计
127.0.0.1:6379> info # Server redis_version:3.2.5 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:75f5eeeebaabc5a4 redis_mode:standalone os:Linux 3.10.0-229.el7.x86_64 x86_64 arch_bits:64 multiplexing_api:epoll ... ... ... ... 127.0.0.1:6379>
7、monitor
实时显示收到的请求
127.0.0.1:6379> monitor OK # 有客户端进行连接 1481013661.020891 [0 127.0.0.1:52881] "COMMAND" # 客户端执行的命令 1481013672.994979 [0 127.0.0.1:52881] "keys" "*" 1481013695.957605 [0 127.0.0.1:52881] "get" "name" 1481013704.682609 [0 127.0.0.1:52881] "set" "name" "linux"
8、config get
获取服务器配置信息。
127.0.0.1:6379> config get dir 1) "dir" 2) "/usr/local/redis/6379"
9、flushdb
删除当前数据库中所有的key
127.0.0.1:6379> dbsize (integer) 19 127.0.0.1:6379> flushdb OK 127.0.0.1:6379> dbsize (integer) 0
10、flushall
删除所有数据库中的所有key
127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> dbsize (integer) 1 127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> dbsize (integer) 4 127.0.0.1:6379> flushall OK 127.0.0.1:6379> dbsize (integer) 0 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> dbsize (integer) 0
三、安全相关
因为各种安全的原因,我们可能想要对数据库设置密码。
修改配置文为以下的语句:
requirepass foobared
使用系统默认的密码“foobared”。注意:因为redis数据库速度相当快,可以做到1秒150K次的密码尝试,所以实际使用时需要设置足够强大的密码。
重新启动数据库。然后再用数据库连接操作时,就会发生下面的情况:
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
如果想要操作需要输入口令
127.0.0.1:6379> auth foobared OK 127.0.0.1:6379> keys * 1) "name"
我们还可以在连接服务器的时候就指定口令:
[root@localh ~]# redis-cli -a foobared 127.0.0.1:6379> keys * 1) "name" 127.0.0.1:6379>