zoukankan      html  css  js  c++  java
  • Linux.Redis.Server(redis-server)和Client(redis-cli)关系

    设计的redis命令

    redis-server
    redis-cli

    要从设置密码说起...

    本来启动redis的server命令

    #启动redis-server,并且指定配置文件
    [zf@VM_0_13_centos redis]$ ./bin/redis-server ./redis.conf
    

    这个时候,密码的配置项(requirepass)是配置在redis.conf中的,
    所以这个密码我当时觉得是redis-cli客户端连接redis-server的时候需要提供的.
    但是redis-cli启动的时候

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

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

    #启动客户端可以添加的一些配置信息↓
    [zf@VM_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密码配置,

    [zf@VM_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!!!"的问题,
    后来只能这么处理了

    [root@VM_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
    

    摘抄文档

  • 相关阅读:
    PS后期合成,你和大神的差距就这5步!
    欧几里得算法:从证明等式gcd(m, n) = gcd(n, m mod n)对每一对正整数m, n都成立说开去
    谜题:过桥问题
    《世界是数字的》读书笔记第一部分_硬件篇
    完全偶图K(3,3)与完全图K5是否存在平面表示
    Dijkstar算法的数学原理
    LeetCode 141. Linked List Cycle
    LeetCode 155. Min Stack
    LeetCode 160. Intersection of Two Linked Lists
    LeetCode 165.Compare Version Numbers
  • 原文地址:https://www.cnblogs.com/love-zf/p/12591585.html
Copyright © 2011-2022 走看看