学习linux的第六十天

redis常用操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看数据库中所有带的key
127.0.0.1:6379> keys *

  1. “myk”
  2. “k3”
  3. “k1”
  4. “zset1”
  5. “key1”
  6. “set2”
  7. “list2”
  8. “mykey”
  9. “hset1”
  10. “hash1”
  11. “set3”
  12. “k2”
  13. “set4”
  14. “set1”
  15. “seta”
  16. “set5”
  17. “key2”
  18. “list1”

支持模糊匹配
127.0.0.1:6379> keys my*

  1. “myk”
  2. “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 *

  1. “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*

  1. “set2”
  2. “set3”
  3. “set4”
  4. “set1”
  5. “seta”
  6. “set5”
    127.0.0.1:6379> RENAME seta set6
    OK
    127.0.0.1:6379> keys set*
  7. “set2”
  8. “set3”
  9. “set4”
  10. “set1”
  11. “set6”
  12. “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 *

  1. “set3”
  2. “set5”
  3. “set1”
  4. “list2”
  5. “zset1”
  6. “k3”
  7. “set2”
  8. “set4”
  9. “hset1”
  10. “mykey”
  11. “hash1”
  12. “list1”
  13. “set6”
  14. “k1”
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值