4
当我使用redis池时,如何更改redb命令(select)。如何更改redis数据库,redis客户端来自redis池
我想写主机,并从不同的数据库读主机。
例如:
刚才我只有一个Redis的服务器,所以readWriteHosts = readOnlyHosts
pool = RedisDao.CreateManager(hostIp, hostIp);
public static PooledRedisClientManager CreateManager(string[] readWriteHosts, string[] readOnlyHosts)
{
return new PooledRedisClientManager(readWriteHosts, readOnlyHosts, new RedisClientManagerConfig
{
MaxWritePoolSize = 50,//
MaxReadPoolSize = 5,//
AutoStart = true,
});
}
public RedisDB ReadRedisForModel(String ID)
{
//这里我想用DB号是白天%15
using (var redis = pool.GetClient())
{
RedisDB model = new RedisDB();
Dictionary<string, string> dic = redis.GetAllEntriesFromHash(keyPrefix + ID);
model.ID = ID;//Int32.Parse(ids[i]);
return model;
}
}
public void WriteRedis(RedisDB model)
{
//这里我想用的DB号是(day-1)%15
using (var redis = pool.GetClient())
{
编辑:
我找到一种方法来设置不同的数据库,但我觉得这个解决方案不是最好的办法。
if(redis is RedisClient)
{
long db = redis.DB;//db always = 0;
((RedisClient)redis).ChangeDB((day-1)%15);
}
是否需要锁定线程?当我读或写redis时。 恐怕,我在多线程中获得了相同的redis客户端。那么Redis DB是?
编辑结束
int time = DateTimeUtil.ConvertDateTimeInt(DateTime.Now);
model.ID = time + redis.Increment(incrementKey, 1) + "";//.Incr("ID");
using (var pip = redis.CreatePipeline())
{
pip.QueueCommand(r => r.AddItemToList(primaryKey, model.ID + ""));
pip.Flush();
};
};
}
我redisClient从池,但redisClient不具有changeDB的功能。
因此,任何人如何设置它?