redis使用技巧小结
一、Redis 密码设置和查看密码
redis没有实现访问控制这个功能,但是它提供了一个轻量级的认证方式,可以编辑redis.conf配置来启用认证。
1、初始化Redis密码:
在配置文件中有个参数:requirepass,这个就是配置redis访问密码的参数;
比如 requirepass password
(Ps:需重启Redis才能生效) redis的查询速度是非常快的,外部用户一秒内可以尝试多大150K个密码;所以密码要尽量长(对于DBA 没有必要必须记住密码);
2、不重启Redis设置密码:
在配置文件中配置requirepass的密码(当redis重启时密码依然有效)。
redis 127.0.0.1:6379> config set requirepass password
查询密码:
redis 127.0.0.1:6379> config get requirepass
(error) ERR operation not permitted
密码验证:
redis 127.0.0.1:6379> auth password
OK
再次查询:
redis 127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "password"
PS:如果配置文件中没添加密码 那么redis重启后,密码失效;
3、登陆有密码的Redis:
在登录的时候的时候输入密码:
redis-cli -p 6379 -a password
先登陆后验证:
redis-cli -p 6379
redis 127.0.0.1:6379> auth password
OK
AUTH命令跟其他redis命令一样,是没有加密的;阻止不了攻击者在网络上窃取你的密码;
认证层的目标是提供多一层的保护。如果防火墙或者用来保护redis的系统防御外部攻击失败的话,外部用户如果没有通过密码认证还是无法访问redis的。
二、启动、停止redis:
启动redis:
node02执行以下命令启动redis
cd /export/servers/redis-3.2.8/
src/redis-server redis.conf
停止redis:
redis-cli -h node02 -p 6379 shutdown
或者直接kill -9 redis进程号
三、连接redis客户端:
node01执行以下命令连接redis客户端
cd /export/servers/redis-3.2.8
src/redis-cli -h node01 -p 6379 -a password
四、批量删除keys:
1.未登录客户端的情况下:
redis为默认端口号6379,无连接密码,删除命令如下:
redis-cli keys "key*" | xargs redis-cli del
redis不为默认端口号6379,连接密码为"password",删除命令如下:
redis-cli -h node02 -p 6379 -a password keys "itcast*" | xargs redis-cli -h node02 -p 6379 -a password del
但是会报错:(error) ERR wrong number of arguments for 'del' command
2.登录redis客户端后,也可以批量删除,如下:
DEL key1 key2 #删除多个key
flushdb #删除当前数据库中的所有Key
flushall #删除所有数据库中的key
五、redis绑定多个IP:
bind 192.168.8.100 127.0.0.1 #多个IP之间用空格进行分隔
bind 0.0.0.0 #可以绑定任意IP
六、redis的主从复制架构需要密码验证:
redis master配置了密码,需要进行主从同步的话,要在所有的slave的redis.conf中配置验证:masterauth 123456
否则查看redis.log,可以发现报错信息如下:
5933:S 05 Sep 20:46:09.100 * Connecting to MASTER 192.168.8.100:6379
5933:S 05 Sep 20:46:09.101 * MASTER <-> SLAVE sync started
5933:S 05 Sep 20:46:09.101 * Non blocking connect for SYNC fired the event.
5933:S 05 Sep 20:46:09.103 * Master replied to PING, replication can continue...
5933:S 05 Sep 20:46:09.103 * (Non critical) Master does not understand REPLCONF listening-port: -NOAUTH Authentication required.
5933:S 05 Sep 20:46:09.104 * (Non critical) Master does not understand REPLCONF capa: -NOAUTH Authentication required.
5933:S 05 Sep 20:46:09.104 * Partial resynchronization not possible (no cached master)
5933:S 05 Sep 20:46:09.105 # Unexpected reply to PSYNC from master: -NOAUTH Authentication required.
5933:S 05 Sep 20:46:09.105 * Retrying with SYNC...
5933:S 05 Sep 20:46:09.106 # MASTER aborted replication with an error: NOAUTH Authentication required.
七、哨兵模式,sentinel和redis身份验证配置:
当一个master配置为需要密码才能连接时,客户端和slave在连接时都需要提供密码。
redis.conf文件中:
(1)master通过requirepass设置自身的密码,不提供密码无法连接到这个master。
(2)slave通过masterauth来设置访问master时的密码。
但是当使用了sentinel时,由于一个master可能会变成一个slave,一个slave也可能会变成master,所以需要同时设置上述两个配置项。
sentinel.conf文件中,需要配置:
sentinel monitor mymaster 192.168.8.100 6379 2
sentinel auth-pass mymaster 123456 # Set the password to use to authenticate with the master and slaves.
protected-mode no(设置成:protected-mode no;保护模式关闭,如果你不关闭保护模式,启动哨兵的时候,无法正常运行)
注意:(1)如果redis的master和slave设置了密码,则必须要设置protected-mode no,否则master的redis-server进程意外停止时,redis.log日志文件中会打印错误信息:
3936:S 05 Sep 22:40:38.745 * Connecting to MASTER 192.168.8.100:6379
3936:S 05 Sep 22:40:38.746 * MASTER <-> SLAVE sync started
3936:S 05 Sep 22:40:38.747 # Error condition on socket for SYNC: Connection refused
(2)可能需要master和slave的密码设置相同,不过没有验证过设置不同密码的话哨兵模式会不会失败。
八、
redis使用技巧小结的更多相关文章
- PowerDesigner实用技巧小结(3)
PowerDesigner实用技巧小结(3) PowerDesigner 技巧小结 sqlserver数据库databasevbscriptsqldomain 1.PowerDesigner 使用 M ...
- PowerDesigner实用技巧小结(2)
PowerDesigner实用技巧小结 1.ORACLE数据库建模时,由于ORACLE的表名.字段名如果是小写会有一定的麻烦,需要将小写转化为大写? (1)在打开pdm的情况下,进入Tools-Mod ...
- PHP操作Redis常用技巧
这篇文章主要介绍了PHP操作Redis常用技巧,结合实例形式总结分析了php针对redis的连接.认证.string.hash等操作技巧与注意事项,需要的朋友可以参考下 本文实例讲述了PHP操作Red ...
- Spring Boot + MyBatis + Druid + Redis + Thymeleaf 整合小结
Spring Boot + MyBatis + Druid + Redis + Thymeleaf 整合小结 这两天闲着没事想利用**Spring Boot**加上阿里的开源数据连接池**Druid* ...
- CentOS系统中的passwd命令实用技巧小结
这篇文章主要介绍了Linux系统中的passwd命令实用技巧小结,是Linux入门学习中的基础知识,需要的朋友可以参考下 先来回顾一下passwd命令的基本用法: Linux passwd命令用来 ...
- 转:Redis监控技巧
转自:http://blog.nosqlfan.com/html/4166.html Redis监控技巧 作者:nosqlfan on 星期二, 一月 29, 2013 · 16条评论 [阅读:25, ...
- github搜索技巧小结
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 10 个 Redis 建议/技巧
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/145.html?1455790611 Redis 在当前的技术社区里是非常 ...
- Redis日常操作命令小结
Redis缓存服务是运维工作中比较常见的一种维护工作,下面就redis日常操作命令在此做一简单小结,以备查用: 1)连接redis服务命令# redis-cli -h redis主机ip或主机域名 - ...
随机推荐
- C++之Boost准标准库配置
下载安装 进入官网下载地址:https://www.boost.org/users/download/ 本教程直接下载官方已编译库,不涉及源代码手动编译 点击官方编号好的链接,然后进入一个下载地址:h ...
- 2019沈阳网赛树形dp
https://nanti.jisuanke.com/t/41403 2019沈阳网络赛D题 树形dp.一棵树,求任意两个点的距离之和.u-v和v-u算两次.两点之间的距离分为三类,模3等于0,1,2 ...
- hibernate和mybatis出现配置文件xml的文件报错Multiple annotations found at this line(转)
hibernate中的xml配置文件Multiple annotations found at this line,出现这个红叉报错,直接是把 <?xml version="1.0&q ...
- markdown整理
html标签# h1 ## h2 ### h3 #### h4 ##### h5 ###### h6 一级标题:内容=== 二级标题:内容--- 强调文字:>内容 链接:[文字](链接地址) 图 ...
- 官方不再支持Python2,如何将你的项目完美迁移到Python3?
Python 2.x 很快就要失去官方支持了,不过不用慌,从 Python 2 迁移到 Python 3 却并没有想象中那么难.我在上周用了一个晚上的时间将一个 3D 渲染器的前端代码及其对应的 Py ...
- spring boot 配置logback日志之jdbcTemplate打印sql语句配置
配置jdbcTemplate打印sql 用mybaties打印语句很好配置,后来用了JdbcTemplate就不知道怎么打印了,其实JdbcTemplate执行sql语句的过程会做打印sql语句的操作 ...
- 验证码比较hash_equals 方法
验证码是否与缓存中一致时,使用了 hash_equals 方法: hash_equals($verifyData['code'], $request->verification_code) ha ...
- Git的安装和使用(转载)
转载博客连接:https://www.cnblogs.com/qijunjun/p/7137207.html 实际项目开发中,我们经常会用一些版本控制器来托管自己的代码,今天就来总结下Git的相关用法 ...
- 推荐 C/C++ 人工智能 框架和库
2018年10月22日 22:59:58 yangminggg 阅读数:2217 值得推荐的C/C++框架和库 C++资源大全 关于 C++ 框架.库和资源的一些汇总列表,内容包括:标准库.Web ...
- PS——"火龙"
一.打开素材龙图案(因为老师给了素材,所以直接打开了) 二.Ctrl+J把背景图层复制一份,用魔棒工具把白色的背景去除(背景和龙的外围会出现蚂蚁线),Delete键清除,Ctrl+D取消选择 三.全选 ...