一、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使用技巧小结的更多相关文章

  1. PowerDesigner实用技巧小结(3)

    PowerDesigner实用技巧小结(3) PowerDesigner 技巧小结 sqlserver数据库databasevbscriptsqldomain 1.PowerDesigner 使用 M ...

  2. PowerDesigner实用技巧小结(2)

    PowerDesigner实用技巧小结 1.ORACLE数据库建模时,由于ORACLE的表名.字段名如果是小写会有一定的麻烦,需要将小写转化为大写? (1)在打开pdm的情况下,进入Tools-Mod ...

  3. PHP操作Redis常用技巧

    这篇文章主要介绍了PHP操作Redis常用技巧,结合实例形式总结分析了php针对redis的连接.认证.string.hash等操作技巧与注意事项,需要的朋友可以参考下 本文实例讲述了PHP操作Red ...

  4. Spring Boot + MyBatis + Druid + Redis + Thymeleaf 整合小结

    Spring Boot + MyBatis + Druid + Redis + Thymeleaf 整合小结 这两天闲着没事想利用**Spring Boot**加上阿里的开源数据连接池**Druid* ...

  5. CentOS系统中的passwd命令实用技巧小结

    这篇文章主要介绍了Linux系统中的passwd命令实用技巧小结,是Linux入门学习中的基础知识,需要的朋友可以参考下   先来回顾一下passwd命令的基本用法: Linux passwd命令用来 ...

  6. 转:Redis监控技巧

    转自:http://blog.nosqlfan.com/html/4166.html Redis监控技巧 作者:nosqlfan on 星期二, 一月 29, 2013 · 16条评论 [阅读:25, ...

  7. github搜索技巧小结

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. 10 个 Redis 建议/技巧

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/145.html?1455790611 Redis 在当前的技术社区里是非常 ...

  9. Redis日常操作命令小结

    Redis缓存服务是运维工作中比较常见的一种维护工作,下面就redis日常操作命令在此做一简单小结,以备查用: 1)连接redis服务命令# redis-cli -h redis主机ip或主机域名 - ...

随机推荐

  1. Box/坐标/方向/Row

    1.Box, 我们在做design planning的第一步就是确定floorplan的box,也就是设计的区域.这个区域可以划分为三个边界,如下图所示: 上图中,按对应的颜色框框可以分为:Die B ...

  2. 老生常谈--Java值传递和引用传递

    起因 前两天面试被问到了这个问题,虽然之前老早就了解过这个问题,但是并没有深入了解,所以面试的时候一下子慌了,菜是原罪,今天菜鸡来补补基础知识. 其实这个问题一直是被讨论的,常见的三种说法就是,1,J ...

  3. docker容器 - 进入容器、删除容器

    实验环境 CentOS 7.5 容器 容器是镜像的运行实例.不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层:同时,容器中的应用进程处于运行状态. 进入容器 可使用以下命令进入容器: ...

  4. Ubuntu16.04 QT5编译出现cannot find -lGL和collect2:error:ld r

    在ubuntu下使用Qt 编译时候遇上了cannot find -lGL错误,使用命令 是由于系统缺少链接库,在终端执行下面命令就可以解决问题. sudo apt-get install libqt4 ...

  5. 第二十六篇 玩转数据结构——二分搜索树(Binary Search Tree)

          1.. 二叉树 跟链表一样,二叉树也是一种动态数据结构,即,不需要在创建时指定大小. 跟链表不同的是,二叉树中的每个节点,除了要存放元素e,它还有两个指向其它节点的引用,分别用Node l ...

  6. Educational Codeforces Round 76 (Rated for Div. 2) A. Two Rival Students

    You are the gym teacher in the school. There are nn students in the row. And there are two rivalling ...

  7. Docker - Docker 镜像 简介

    概述 简单介绍一下 docker 镜像的概念 1. 背景 复习 docker 镜像是 docker 最基础, 最重要的概念之一 所以正式使用之前, 最好有所理解和认识 2. 镜像 概述 简单描述 理解 ...

  8. Educational Codeforces Round 80 (Rated for Div. 2)C(DP)

    #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace std; ; ][],temp[][]; int ...

  9. Go流程结构(for)

    一.程序的流程结构 程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构. 顺序结构:代码从上向下逐行的执行 选择结构:条件满足,某些代码才会被执行.0-1次 if语句,switch语句 循环结 ...

  10. 远程传输文件命令:scp

    1.概述 scp(secure copy)是一个基于 SSH 协议在网络之间进行安全传输的命令,其格式为“scp [参数] 本地文件 远程帐户@远程 IP 地址:远程目录”. 与第 2 章讲解的 cp ...