Exemplo n.º 1
0
        public async Task <DtcCacheItemOfOrder> GetAsync(string key)
        {
            return(await Task.Run(() =>
            {
                var currentNode = _consistentHashing.CalculatedNode(key);//计算分配到哪个服务节点上
#if DEBUG
                Console.WriteLine($"查询节点:{currentNode}");
#endif
                IRedisClient redisClient = RedisContains.Connect(currentNode);//查找一个对应服务节点的redis客户端
                return (DtcCacheItemOfOrder)redisClient.Contains[key];
            }));
        }
Exemplo n.º 2
0
        public async Task <bool> SaveAsync(DtcCacheItemOfOrder cacheItem)
        {
            return(await Task.Run(() =>
            {
                var currentNode = _consistentHashing.CalculatedNode(cacheItem.Key); //计算分配到哪个服务节点上
                IRedisClient redisClient = RedisContains.Connect(currentNode);      //查找一个对应服务节点的redis客户端
                cacheItem.DtcNode = currentNode;
#if DEBUG
                Console.WriteLine($"保存节点:{currentNode}");
#endif
                if (redisClient.Contains.ContainsKey(cacheItem.DtcNode))
                {
                    redisClient.Contains[cacheItem.Key] = cacheItem;
                }
                else
                {
                    redisClient.Contains.Add(cacheItem.Key, cacheItem);
                }
                return true;
            }));
        }