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或主机域名 - ...
随机推荐
- execute command denied to user 'maintain'@'%' for routine
GRANT ALL PRIVILEGES ON *.* TO 'maintain'@'%' ; FLUSH PRIVILEGES;
- 【NS-3学习】ns3-模拟基础:关键概念,日志,命令行参数
前言 本篇博客先介绍在仿真过程中会使用到的一些关键概念,然后介绍便于调试仿真脚本的常用技术:日志.命令行参数. 关键概念 节点 在因特网术语中,主机(终端)是指任何一台连接到网络的计算设备.ns-3并 ...
- sublime 神一样的插件
专属配置 // 主题 "theme": "Boxy Tomorrow.sublime-theme", "theme_grid_border_size_ ...
- Python基础知识详解 从入门到精通(七)类与对象
本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详 ...
- python开发基础作业02:三级菜单,使用字典dic及列表
作业要求及提示:三级菜单 ''' 1.三级菜单 2.可依次进入各子菜单 3.菜单能够回到上一级 4.用到知识点:字典.列表.多层循环.函数 条件:基本 if else 嵌套 if...if... ...
- Go键盘输入和打印输出
package main import ( "fmt" "bufio" "os" ) func main() { /* 输入和输出: fmt ...
- 输入两个正整数num1、num2,计算并输出它们的和、差、积、整数商和余数
课本例题 /*输入两个正整数num1.num2,计算并输出它们的和.差.积.整数商和余数.*/ #include<stdio.h> int main() { int num1, num2; ...
- selenium+python自动化用例登陆界面模板
一.基本逻辑 1.自动填写用户名和密码登录成功后跳转到相应页面 2.验证相应页面的url与给定的url是否一致,如果一致则测试通过,如果不一致则不通过 二.以jenkins登陆界面为例,代码如下 fr ...
- maven版cxf集合jetty开发服务端(一)
一.首先新建一个maven项目 二.pom.xml引入依赖 <dependency> <groupId>org.apache.cxf</groupId> <a ...
- ASP.NET Core搭建多层网站架构【0-前言】
2020/01/26, ASP.NET Core 3.1, VS2019 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构 目录 0-前言 1-项目结构分层建立 2-公共基 ...