环境登录报错:Could not get a resource from the pool

这个应该是新手比较容易犯的错误。

取了redis集群的包搭建单机的环境,未正确修改Tomcat的配置文件中关于redis的相关配置,导致登录报错:Could not get a resource from the pool,日志中抛错:Redis connection I dont know because no sentinel up:6379 lost.
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool

问题在于:集群的redis配置是sentinel,且有masterName=mymaster,单机redis用direct,且没有masterName=mymaster。

正确的配置方式如图:

 

修改后重启redis即可。

Redis 主从复制、哨兵和集群三者区别:

主从复制是为了数据备份,哨兵是为了高可用,Redis主服务器挂了哨兵可以切换,集群则是因为单实例能力有限,搞多个分散压力,简单点说就是:
一个Master可以有多个Slaves.
sentinel发现master挂了后,就会从slave中重新选举一个master。
cluster是为了解决单机Redis容量有限的问题,将数据按一定的规则分配到多台机器。
sentinel着眼于高可用,Cluster提高并发量。
1. 主从模式:读写分离,备份,一个Master可以有多个Slaves。
2. 哨兵sentinel:监控,自动转移,哨兵发现主服务器挂了后,就会从slave中重新选举一个主服务器。
3. 集群:为了解决单机Redis容量有限的问题,将数据按一定的规则分配到多台机器,内存/QPS不受限于单机,可受益于分布式集群高扩展性。

 

posted @ 2021-05-17 16:04  海淀小马驹  阅读(822)  评论(0)    收藏  举报