redis常用操作
查看数据库中所有带的key
127.0.0.1:6379> keys *
- “myk”
- “k3”
- “k1”
- “zset1”
- “key1”
- “set2”
- “list2”
- “mykey”
- “hset1”
- “hash1”
- “set3”
- “k2”
- “set4”
- “set1”
- “seta”
- “set5”
- “key2”
- “list1”
支持模糊匹配
127.0.0.1:6379> keys my*
- “myk”
- “mykey”
判断一个key是否存在
127.0.0.1:6379> EXISTS key1
(integer) 1
存在返回1
127.0.0.1:6379> EXISTS sh
(integer) 0
不存在返回0
删除一个键
127.0.0.1:6379> del key1
(integer) 1
127.0.0.1:6379> get key1
(nil)
给一个key设置过期时间
127.0.0.1:6379> EXPIRE key2 10
(integer) 1
127.0.0.1:6379> get key2
“linux”
127.0.0.1:6379> get key2
“linux”
127.0.0.1:6379> get key2
“linux”
127.0.0.1:6379> get key2
(nil)
查看key有多长时间过期
127.0.0.1:6379> EXPIRE k2 15
(integer) 1
127.0.0.1:6379> ttl k2
(integer) 12
127.0.0.1:6379> ttl k2
(integer) 7
127.0.0.1:6379> ttl k2
(integer) 4
127.0.0.1:6379> ttl k2
(integer) 1
127.0.0.1:6379> ttl k2
(integer) -2
127.0.0.1:6379> ttl k2
(integer) -2
127.0.0.1:6379> get k2
(nil)
#当key已经不存在时,返回-2
#当key存在但是没有设置失效时间时,返回-1
选择那一个数据库,默认数据是0,一共16个库
127.0.0.1:6379> SELECT 1
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
将一个key移动到其他数据库
127.0.0.1:6379> MOVE myk 1
(integer) 1
127.0.0.1:6379> SELECT 1
OK
127.0.0.1:6379[1]> keys *
- “myk”
取消key的过期时间
127.0.0.1:6379> EXPIRE mykey 1000
(integer) 1
127.0.0.1:6379> ttl mykey
(integer) 994
127.0.0.1:6379> PERSIST mykey
(integer) 1
127.0.0.1:6379> ttl mykey
(integer) -1
随机返回一个key
127.0.0.1:6379> RANDOMKEY
“set5”
127.0.0.1:6379> RANDOMKEY
“zset1”
127.0.0.1:6379> RANDOMKEY
“set4”
重命名一个key
127.0.0.1:6379> keys set*
- “set2”
- “set3”
- “set4”
- “set1”
- “seta”
- “set5”
127.0.0.1:6379> RENAME seta set6
OK
127.0.0.1:6379> keys set* - “set2”
- “set3”
- “set4”
- “set1”
- “set6”
- “set5”
查看key的类型
127.0.0.1:6379> TYPE set5
set
127.0.0.1:6379> TYPE set6
zset
redis的安全设置
redis漏洞:redis被黑导致系统被黑,redis服务监听全网IP,并且服务器没有做iptables规则,没有对6379端口进行限制,就能远程连接你的redis服务器。并且,你的redis没有设置密码,直接连进来,相当于获得了一个超级管理员的权限。这时候就可以给他设定dir和dbfilrname。将dir设定到/root/.ssh里,dbfilename设定/root/.ssh/authorized_keys,咋这个文件里放上它的公钥,进而可以使用对应的私钥登录到服务器上了。
解决这个漏洞有很多种方法,设置一个密码,监听内网IP,加防火墙规则,以普通用户的身份去启动redis。都可以解决
设置监听IP
bind 127.0.0.1 2.2.2.2
#多个IP可以用空格分开
设置监听端口:
port 16000
#redis默认端口6379
设置密码登录:
打开配置文件
[root@shuai-01 ~]# vim /etc/redis.conf
找到requirepass,加上你的密码配置行
requirepass shuai>com
改完密码后,重启redis
[root@KXLZQ ~]# killall redis-server
[root@KXLZQ ~]# redis-server /etc/redis.conf
不使用密码登录使用
[root@KXLZQ ~]# redis-cli
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
使用密码登录能正常使用
[root@KXLZQ ~]# redis-cli -a ‘shuai>com’
127.0.0.1:6379> keys *
- “set3”
- “set5”
- “set1”
- “list2”
- “zset1”
- “k3”
- “set2”
- “set4”
- “hset1”
- “mykey”
- “hash1”
- “list1”
- “set6”
- “k1”