今天学习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服务器而耗尽资源。 标签:用户名,service,hcss,--,redis,密码,6e82,ecs From: https://www.cnblogs.com/llcdbk/p/18384439