0xsky / xredis

Redis C++ client, support the data slice storage, support redis cluster, thread-safe,multi-platform,connection pool, read/write separation.
GNU General Public License v3.0
337 stars 153 forks source link

dbindex #41

Closed jiephe closed 5 years ago

jiephe commented 6 years ago

你好,使用时有以下几个问题:

  1. RedisNode结构的dbindex为什么没有关联到redis里真正的db, 不是连接成功之后执行select命令就可以了吗?有什么其他考虑吗?
  2. 既然都在db0上面操作,那下面的两个结构有什么区别吗,最终都是产生8个连接供使用 { 0,"127.0.0.1", 7000, "", 2, 5, 0 }, { 1,"127.0.0.1", 7000, "", 2, 5, 0 }, { 2,"127.0.0.1", 7000, "", 2, 5, 0 }, { 3,"127.0.0.1", 7000, "", 2, 5, 0 },

    { 0,"127.0.0.1", 7000, "", 8, 5, 0 },

0xsky commented 6 years ago

问题1:dbindex 是xredis自己抽像出来的存储节点索引,与REDIS内部的db概念没有关系,也不存在对应, xredis的数据分片是以单个REDIS进程为最小单元。dbindex即为分片的索引ID。 问题2:这里列出的每一行配置,应该对应于一个分片节点(逻辑分片)。

jiephe commented 6 years ago

问题1:dbindex 是xredis自己抽像出来的存储节点索引,与REDIS内部的db概念没有关系,也不存在对应, xredis的数据分片是以单个REDIS进程为最小单元。dbindex即为分片的索引ID。 问题2:这里列出的每一行配置,应该对应于一个分片节点(逻辑分片)。

那这样的话, 数据是不是都默认存在db0这里了,如果数据量比较大的话,合适吗? 还是我没有真正理解你的分片的概念! 一般都是像下图这样,用到多个db吗!

image

0xsky commented 5 years ago

“ 数据是不是都默认存在db0这里了,如果数据量比较大的话,合适吗?” 都存在一个里面有什么不好的?会有什么问题? REDIS不是一般意义上的数据库,这里的DB的概念与数据库里的概念不太一样的。

0xsky commented 5 years ago

XREDIS里的分片,是数据分到多个REDIS进程里,多个REDIS服务里存储。不是一个REDIS进程里的多个DB