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

怎么 select db 啊? #50

Open yaqiangxue opened 4 years ago

yaqiangxue commented 4 years ago

怎么select 到某个db啊,如果是单机模式的时候。

bool bRet = redisclient.ConnectRedis("127.0.0.1", 6379, 4);

redisclient.RedisCommand(result, "select %d", 1); // 1. RedisResult result; redisclient.RedisCommand(result, "set %s %s", "key", "hello"); //2

这里的1和2 ,应该是不同的2个redis连接对象吧?

0xsky commented 4 years ago

由于xredis底层采用连接池。默认每个连接都是0号db,xredis不支持在执行命令前选择db。

0xsky commented 4 years ago

第二个问题:”这里的1和2 ,应该是不同的2个redis连接对象吧?“ bool bRet = redisclient.ConnectRedis("127.0.0.1", 6379, 4); redisclient.RedisCommand(result, "select %d", 1); // 1. RedisResult result; redisclient.RedisCommand(result, "set %s %s", "key", "hello"); //2 上面使用的应该是支持redis官方集群的client实现, 上面执行的两个命令,会通过key计算选择到同一个redis节点 , 但是,xredis内部对每个节点都可能有一个连接池,每次执行命令,都是从连接池取一个连接,再执行。 所以,上面的 1, 2 命令执行时,可能使用不同的redis client连接。

0xsky commented 1 year ago

不支持 select 命令

小强 @.***> 于2019年12月4日周三 11:13写道:

怎么select 到某个db啊,如果是单机模式的时候。

bool bRet = redisclient.ConnectRedis("127.0.0.1", 6379, 4);

redisclient.RedisCommand(result, "select %d", 1); // 1. RedisResult result; redisclient.RedisCommand(result, "set %s %s", "key", "hello"); //2

这里的1和2 ,应该是不同的2个redis连接对象吧?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/0xsky/xredis/issues/50?email_source=notifications&email_token=ABHXTHZOTYZVQOALMYGVTNLQW4N6FA5CNFSM4JVCGOXKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4H54DFBQ, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHXTH2JLAKHW6VAPP6CUNTQW4N6FANCNFSM4JVCGOXA .