我正在尝试在Kubernetes上设置redis集群。我的要求之一是我的redis集群应该在kubernetes集群重启(由于电源故障等问题)的情况下具有弹性。我已经尝试过Kubernetesstatefulset和部署。在statefulset的情况下,在重新启动时,一组新的IP地址被分配给Pod,并且由于redis集群在IP地址上工作,它无法连接到其他redis实例并再次形成集群。如果在单个redis实例部署上使用静态IP的服务,即使我使用静态服务IP地址创建集群,redis也会再次存储Pod的IP,因此在重新启动时它无法连接到其他redis实例并形成集群再次。Myredis-cl
我正在尝试在Kubernetes上设置redis集群。我的要求之一是我的redis集群应该在kubernetes集群重启(由于电源故障等问题)的情况下具有弹性。我已经尝试过Kubernetesstatefulset和部署。在statefulset的情况下,在重新启动时,一组新的IP地址被分配给Pod,并且由于redis集群在IP地址上工作,它无法连接到其他redis实例并再次形成集群。如果在单个redis实例部署上使用静态IP的服务,即使我使用静态服务IP地址创建集群,redis也会再次存储Pod的IP,因此在重新启动时它无法连接到其他redis实例并形成集群再次。Myredis-cl
这是我的应用程序代码:fromflaskimportFlaskfromredisimportRedis,RedisErrorimportosimportsocket#ConnecttoRedisredis=Redis(host=os.getenv("REDIS","redis"),db=0,socket_connect_timeout=2,socket_timeout=2)app=Flask(__name__)@app.route("/")defhello():try:visits=redis.incr("counter")exceptRedisError:visits="cannot
这是我的应用程序代码:fromflaskimportFlaskfromredisimportRedis,RedisErrorimportosimportsocket#ConnecttoRedisredis=Redis(host=os.getenv("REDIS","redis"),db=0,socket_connect_timeout=2,socket_timeout=2)app=Flask(__name__)@app.route("/")defhello():try:visits=redis.incr("counter")exceptRedisError:visits="cannot
我一直在使用redis作为我的nodejs服务器的内存存储。session也由Redis管理。目前我一直在做的是,只要我的服务器连接到它,我就会刷新我的redis,这样每当服务器启动时就没有session像这样:redisClient.on('connect',function(){redisClient.flushdb(function(err,succeeded){logger.debug("redisdbclearedonstartup--",succeeded);//willbetrueifsuccessfull});});我还使用redis来存储一些其他数据,比如一些queu
我一直在使用redis作为我的nodejs服务器的内存存储。session也由Redis管理。目前我一直在做的是,只要我的服务器连接到它,我就会刷新我的redis,这样每当服务器启动时就没有session像这样:redisClient.on('connect',function(){redisClient.flushdb(function(err,succeeded){logger.debug("redisdbclearedonstartup--",succeeded);//willbetrueifsuccessfull});});我还使用redis来存储一些其他数据,比如一些queu
目前,我们的Redis设置涉及Jedis+分片。向上和向下扩展涉及手动添加/删除分片,这是大量的操作工作。我们还严重依赖流水线,因为我们每秒进行大量写入。因此,我们正在研究Redis集群以自动化分片过程。但是,对我们来说,一个破坏交易的因素是Jedis不支持使用Redis集群进行流水线操作:https://groups.google.com/forum/#!msg/redis-db/4I0ELYnf3bk/Lrctk0ULm6AJ我们知道支持流水线+自动分片的Codis,但是由于依赖Zookeeper,需要大量的运维工作。它也是Redis的一个分支,所以它可能不会随着上游的变化而更新。
目前,我们的Redis设置涉及Jedis+分片。向上和向下扩展涉及手动添加/删除分片,这是大量的操作工作。我们还严重依赖流水线,因为我们每秒进行大量写入。因此,我们正在研究Redis集群以自动化分片过程。但是,对我们来说,一个破坏交易的因素是Jedis不支持使用Redis集群进行流水线操作:https://groups.google.com/forum/#!msg/redis-db/4I0ELYnf3bk/Lrctk0ULm6AJ我们知道支持流水线+自动分片的Codis,但是由于依赖Zookeeper,需要大量的运维工作。它也是Redis的一个分支,所以它可能不会随着上游的变化而更新。
根据这个文档:Currently,however,unlikeRedis(clustermodedisabled)clusters,onceaRedis(clustermodeenabled)clusteriscreated,itsstructurecannotbealteredinanyway;youcannotaddordeletenodesorshards.Ifyouneedtoaddordeletenodes,orchangenodetypes,youmustcreatetheclusteranew.(source)但是,该文档似乎描述了将分片添加到集群的过程:Byusingo
根据这个文档:Currently,however,unlikeRedis(clustermodedisabled)clusters,onceaRedis(clustermodeenabled)clusteriscreated,itsstructurecannotbealteredinanyway;youcannotaddordeletenodesorshards.Ifyouneedtoaddordeletenodes,orchangenodetypes,youmustcreatetheclusteranew.(source)但是,该文档似乎描述了将分片添加到集群的过程:Byusingo