Linux.Redis.Server(redis-server)和Client(redis-cli)关系

设计的redis命令

redis-server

redis-cli

要从设置密码说起...

本来启动redis的server命令

#启动redis-server,并且指定配置文件
[[email protected]_0_13_centos redis]$ ./bin/redis-server ./redis.conf

这个时候,密码的配置项(requirepass)是配置在redis.conf中的,

所以这个密码我当时觉得是redis-cli客户端连接redis-server的时候需要提供的.

但是redis-cli启动的时候

#启动客户端可以添加的一些配置信息↓
[[email protected]_0_13_centos redis]$ ./bin/redis-cli -h 127.0.0.1 -p 6379

并不需要密码...

但是有时候会提示需要密码...

#启动客户端可以添加的一些配置信息↓
[[email protected]_0_13_centos redis]$ ./bin/redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> INFO
NOAUTH Authentication required.
127.0.0.1:6379> AUTH 你的密码

到这一步我的脑中还是这样的逻辑↓

redis-server中设置密码,
redis-cli中提交密码

但是下面的一个操作,让我有点晕了...

redis-cli还可以修改密码?

2、不重启Redis设置密码:

在配置文件中配置requirepass的密码(当redis重启时密码依然有效)。

redis 127.0.0.1:6379> config set requirepass test123

查询密码:

redis 127.0.0.1:6379> config get requirepass

(error) ERR operation not permitted

密码验证:

redis 127.0.0.1:6379> auth test123

OK

再次查询:

redis 127.0.0.1:6379> config get requirepass

  1. "requirepass"
  2. "test123"

PS:如果配置文件中没添加密码 那么redis重启后,密码失效;

当时这一波操作给我的感觉就是,

在客户端中设置密码,那服务端配置的密码还有啥用呢...

并且仔细回想一下,我使用redis-cli的时候从来没有提供密码,

但是启动redis-server使用的那个配置文件确实配置了密码的.

你看看,这些细节都是没有注意到的,细思极恐啊...

然后我搜索了一下,执行redis-cli密码配置,

[[email protected]_0_12_centos redis]# redis-cli -h 127.0.0.1 -a 1234!!!
redis-cli -h 127.0.0.1 -a 1234redis-cli -a 1234redis-cli -a 1234redis-cli -a 1234redis-cli !!!!
(error) ERR unknown command `!!!!`, with args beginning with:
You have mail in /var/spool/mail/root

还报错了...密码还不能添加特殊符号了???

结语

仔细想了下,密码还是配置在服务器(redis-server)上,但是客户端(redis-cli)可以修改密码.

就像数据库连接工具SSMS(SQL Server Management Studio)一样,

只要在SSMS中登录的账户权限足够大,

还是可以修改一些Sql Server服务器配置的,

那个密码中含有"!"不能执行"redis-cli -a 1234!!!"的问题,

后来只能这么处理了

[[email protected]_0_12_centos redis]# redis-cli -h 127.0.0.1
127.0.0.1:6379> info
NOAUTH Authentication required.
127.0.0.1:6379> auth "1234!!!"
OK

摘抄文档

原文地址:https://www.cnblogs.com/love-zf/p/12591585.html

时间: 2024-11-09 12:36:13

Linux.Redis.Server(redis-server)和Client(redis-cli)关系的相关文章

虚拟机centOS中安装Redis,主机Redis Destop Manager不能访问虚拟机Redis server的解决方案

今天在学些redis的时候碰到个问题,发现主机Redis Destop Manager不能访问虚拟机Redis server的解决方案,找了一些网上的资料,原因可能有两个,整理记录下来: 1. Redis.conf文件中打开了 # By default Redis listens for connections from all the network interfaces# available on the server. It is possible to listen to just on

linux环境部署 (jdk/tomcat/mysql/redis)

1. 到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)  解压32位安装包: 进入安装包所在目录,执行命令:tar mysql-5.6.17-linux-glibc2.5-i686.tar.gz  复制解

分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装

redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssdb,mongodb等.既可以把redis理解为理解为缓存技术,因为它的数据都是缓存在内从中的:也可以理解为数据库,因为redis可以周期性的将数据写入磁盘或者把操作追加到记录文件中.而我个人更倾向理解为缓存技术,因为当今互联网应用业务复杂.高并发.大数据的特性,正是各种缓存技术引入最终目的. 关于r

linux运维、架构之路-redis

一.redis介绍 Redis是一个开源,高级的键值存储和一个适用的解决方案,用于构建高性能,可扩展的Web应用程序. Redis属于非关系型数据库和Memcached类似,redis也是一个key-value型存储系统.但redis支持的存储value类型相对更多,包括string(字符串).list(列表).set(集合)和zset(有序集合)等.这些数据类型都支持push/pop.add/remove及取交集.并集和差集及更丰富的操作,而且这些操作都是原子性的.为了保证效率,redis的数

Redis学习笔记之二:redis安装windows/linux

一.windows下安装 下载地址:https://github.com/MSOpenTech/redis/releases   版本3.2.100 百度网盘: https://pan.baidu.com/s/1jI9g1xk 根据系统,选择32位或者64位(zip)进行下载,解压到任意目录保存. 也可以下载安装文件进行安装,安装完成后在服务中查看Redis服务是否正确的安装. 1.服务端启动:打开一个cmd窗口,切换到redis所在目录,运行 redis-server.exe redis.wi

linux下安装python、scrapy、redis、mysql

今天给线上服务器装爬虫环境,随便记录下安装过程,网上有很多类似的安装过程,我只是整理+验证,希望对需要安装的人有帮助 安装python 安装python wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz tar zxvf Python-2.7.11.tgz cd Python-2.7.11 ./configure --prefix=/usr/local make && make altinstall 检查Pyth

[linux]小程序:UDP下client向server传输多个字符串

还是实验的作业~ 一共需要两个文件,这是client 1 #include <stdio.h> 2 #include <sys/socket.h> 3 #include <arpa/inet.h> 4 #include <stdlib.h> 5 #include <string.h> 6 #include <unistd.h> 7 8 #define ECHOMAX 255 9 10 int main(int argc, char *

【Linux】Linux服务器(centos7)安装配置 redis

1. 先从官网找到最新稳定版的下载链接.目前是5.0.7.执行以下命令下载安装 # 进入安装目录cd /usr/local #下载安装包,如果没有安装 wget, 先执行 yum install wget wget http://download.redis.io/releases/redis-5.0.7.tar.gz# 解压tar -zxvf redis-5.0.7.tar.gz# 安装 如果包错 cc: cammand not find, 先执行 yum install gcccd redi

分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用(主从.事务与锁.持久化)> 本文我们继续学习redis的高级特性--集群.本文主要内容包括集群搭建.集群分区原理和集群操作的学习. Redis集群简介 Redis 集群是3.0之后才引入的,在3.0之前,使用哨兵(sentinel)机制(本文将不做介绍,大家可另行查阅)来监控各个节点之间的状态.Redi

Redis笔记系列(二)——Redis安装部署与维护详解

本文介绍Redis2.8的安装部署和维护方法. Redis在linux上的安装 步骤1: 首先从官网下在redis正式版的压缩包redis-2.8.19.tar.gz http://download.redis.io/releases/redis-2.8.19.tar.gz 步骤2:编译源程序: tar zxvf redis-2.8.19.tar.gz [[email protected] Downloads]$ tar zxvf redis-2.8.19.tar.gz [[email prot