redis设置用户名密码

今天学习redis的相关配置知识,起因来自于华为云服务器未设置用户名密码导致遭受到攻击,所以我要设置一个用户名密码,但是设置命令后出现这样的报错:
Job for redis.service failed because the control process exited with error code.
See "systemctl status redis.service" and "journalctl -xe" for details. 怎么解决 
 
日志:
Job for redis.service failed because the control process exited with error code.
See "systemctl status redis.service" and "journalctl -xe" for details.
[root@hcss-ecs-6e82 ~]# journalctl -xe
Aug 28 11:58:08 hcss-ecs-6e82 redis-shutdown[2307]: ERR Errors trying to SHUTDOWN. Check logs.
Aug 28 11:59:38 hcss-ecs-6e82 systemd[1]: redis.service: State 'stop-sigterm' timed out. Killing.
Aug 28 11:59:38 hcss-ecs-6e82 systemd[1]: redis.service: Killing process 831 (redis-server) with signal SIGKILL.
Aug 28 11:59:38 hcss-ecs-6e82 systemd[1]: redis.service: Main process exited, code=killed, status=9/KILL
Aug 28 11:59:38 hcss-ecs-6e82 systemd[1]: redis.service: Failed with result 'timeout'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- The unit redis.service has entered the 'failed' state with result 'timeout'.
Aug 28 11:59:38 hcss-ecs-6e82 systemd[1]: Stopped Redis persistent key-value database.
-- Subject: Unit redis.service has finished shutting down
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit redis.service has finished shutting down.
Aug 28 11:59:38 hcss-ecs-6e82 systemd[1]: Starting Redis persistent key-value database...
-- Subject: Unit redis.service has begun start-up
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit redis.service has begun starting up.
Aug 28 11:59:38 hcss-ecs-6e82 redis-server[2338]: *** FATAL CONFIG FILE ERROR ***
Aug 28 11:59:38 hcss-ecs-6e82 redis-server[2338]: Reading the configuration file, at line 509
Aug 28 11:59:38 hcss-ecs-6e82 redis-server[2338]: >>> 'user admin on >qcjz@9253 ~* +@all'
Aug 28 11:59:38 hcss-ecs-6e82 redis-server[2338]: Bad directive or wrong number of arguments
Aug 28 11:59:38 hcss-ecs-6e82 systemd[1]: redis.service: Main process exited, code=exited, status=1/FAILURE
Aug 28 11:59:38 hcss-ecs-6e82 systemd[1]: redis.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- The unit redis.service has entered the 'failed' state with result 'exit-code'.
Aug 28 11:59:38 hcss-ecs-6e82 systemd[1]: Failed to start Redis persistent key-value database.
-- Subject: Unit redis.service has failed
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit redis.service has failed.
--
-- The result is failed.

 

根据日志查询到:
FATAL CONFIG FILE ERROR ***
Reading the configuration file, at line 509
>>> 'user admin on >qcjz@9253 ~* +@all'
Bad directive or wrong number of arguments
发现是redis6.0以后才支持用户名密码。我的是5.0.3,只能支持设置一个密码,并且ACL这样的命令也是不可用的,所以只需要在redis.donf文件中,找到 # requirepass foobared 这一行,取消注释并设置密码。foobared 就是改成自己定义的密码,最后重启redis,问题解决
此时C#的字符串修改如下:
IP:6379,password=yourpassword,ssl=false,abortConnect=false
参数解释:
1.‌ssl=false‌:‌
 
这个选项指定了是否使用SSL(‌安全套接字层)‌加密来与Redis服务器通信。‌
当设置为false时,‌表示连接不是通过SSL加密的,‌即数据在客户端和服务器之间传输时不会加密,‌这可能会使数据面临被截获的风险。‌
如果你的Redis服务器配置了SSL,‌或者你希望增强数据传输的安全性,‌应该将ssl设置为true,‌并确保客户端和服务器之间的SSL配置正确无误。‌
2.‌abortConnect=false‌:‌
 
这个选项控制当StackExchange.Redis尝试连接到Redis服务器但失败时的行为。‌
当设置为true(‌默认值,‌但请注意,‌在某些上下文中,‌如Azure上,‌默认值可能是false)‌时,‌如果StackExchange.Redis无法连接到任何Redis服务器,‌它将不会创建连接,‌并可能抛出异常12。‌
当设置为false时,‌StackExchange.Redis会在初始连接失败时继续尝试连接,‌而不是立即中止。‌这对于处理临时的网络问题或Redis服务器重启等场景很有用。‌然而,‌请注意,‌如果Redis服务器长时间不可用,‌这可能会导致客户端持续尝试连接,‌从而消耗系统资源。‌
在使用这些选项时,‌请根据你的具体需求和环境配置来设置它们。‌如果你不确定是否应该使用SSL加密,‌建议咨询你的网络管理员或安全专家。‌对于abortConnect选项,‌如果你希望你的应用程序能够更健壮地处理网络问题,‌可以考虑将其设置为false。‌但是,‌请注意监控你的应用程序,‌以确保它不会因持续尝试连接到不可用的Redis服务器而耗尽资源。‌
3.其他一些指令:
redis-cli中,auth 你的密码是授权
client list是查看有哪些客户端链接了redis
client kill  可以根据client list查出的ip端口号进行杀死指定客户端连接的操作
posted @ 2024-08-28 12:56  洛晨随风  阅读(76)  评论(0编辑  收藏  举报