/// <summary> /// 获取 Server 对象 /// </summary> /// <returns></returns> private static IServer GetServer() { IServer server = null; try { //https://github.com/StackExchange/StackExchange.Redis/blob/master/Docs/KeysScan.md server = _client?.GetServer(_client?.GetEndPoints()?[0]); #if DEBUG && RedisError server = null; throw new Exception("模拟Redis连接错误,手动抛出异常"); #endif } catch (Exception ex) { LogHelper.RuntimeLog(new { ReqId = string.Empty, flag_type = 4, target = string.Format("/{0}/{1}", System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.FullName, new System.Diagnostics.StackTrace().GetFrame(0).GetMethod().Name), LogContent = $"【异常】:【{JSON.Serialize(ex)}】" }); } return(server); }
public void Setup() { Connection.GetServer(Connection.GetEndPoints()[0]).FlushDatabase(); }
public void ClearDb() { IServer server = _redis.GetServer(_redis.GetEndPoints()[0]); server.FlushDatabase(); }
protected IServer GetServer(ConnectionMultiplexer muxer) { EndPoint[] endpoints = muxer.GetEndPoints(); IServer result = null; foreach(var endpoint in endpoints) { var server = muxer.GetServer(endpoint); if (server.IsSlave || !server.IsConnected) continue; if(result != null) throw new InvalidOperationException("Requires exactly one master endpoint (found " + server.EndPoint + " and " + result.EndPoint + ")"); result = server; } if(result == null) throw new InvalidOperationException("Requires exactly one master endpoint (found none)"); return result; }
public EndPoint[] GetEndPoints() { return(_redis.GetEndPoints()); }
private void Init() { connection = ConnectionMultiplexer.Connect(settings.ConnectionString); database = connection.GetDatabase(); server = connection.GetServer(connection.GetEndPoints().First()); }
public static void Connect() { Redis = ConnectionMultiplexer.Connect(string.Join(",", ConnectionStrings)); Servers = Redis.GetEndPoints().Select(p => Redis.GetServer(p)).Where(p => p.IsConnected).ToList(); }
internal static IServer GetServer(this ConnectionMultiplexer connection) { var endPoints = connection.GetEndPoints(); return(connection.GetServer(endPoints[0])); }
public static IServer GetFirstServer(this ConnectionMultiplexer @this) { var endPoint = @this.GetEndPoints()[0]; return(@this.GetServer(endPoint)); }
static void Main(string[] args) { //Redis 有多db var first = db.ListGetByIndex("order", 0); var firstOrder = db.ListLeftPop("order"); for (int i = 0; i < 10; i++) { db.ListLeftPush("order", i); } //for (int i = 0; i < 10; i++) //{ // Console.WriteLine($"第{i}次,同步从Redis获取订单:{ db.ListLeftPop("order")}"); //} //for (int i = 0; i < 10; i++) //{ // Console.WriteLine($"第{i}次,同步从内存列表获取订单:{list.FirstOrDefault()}"); // list.RemoveAt(0); //} for (int i = 0; i < 10000; i++) { db.ListLeftPush("order", i); } for (int i = 0; i < 10000; i++) { list.Add(i); } Thread.Sleep(5000); Parallel.For(0, 9999, i => GetOrder(i)); //for (int i = 0; i < 10; i++) //{ // Thread thread1 = new Thread(GetOrder); // thread1.Start(); //} //string value = "console"; //db.StringSet("mykey", value); //db.StringSet("mykey1", "111"); //db.StringSet("mykey2", "11221"); //IDatabase db1 = redis.GetDatabase(1); //db1.HashSet("myhash", "key1", "value1"); //Console.WriteLine (db.StringGet("mykey")); //ISubscriber sub = redis.GetSubscriber(); //sub.Subscribe("message", (channel, message) => //{ // Console.WriteLine(message); //}); ////获取单个服务 //IServer redisServer = redis.GetServer("localhost", 6379); //foreach (var key in redisServer.Keys(pattern: "*key*")) //{ // Console.WriteLine(key); //} System.Net.EndPoint[] endpoints = redis.GetEndPoints(); Console.ReadKey(); }
public void Dispose() { _multiplexer.GetServer(_multiplexer.GetEndPoints()[0]).FlushDatabase(); }
public RedisTests() { _multiplexer = ConnectionMultiplexer.Connect("bafver.redis.cache.windows.net,ssl=true,password=een9I4OZKFi1sju6OEm9dJefqokLtLxNuVDc0CDzrY8=,allowAdmin=true"); _multiplexer.GetServer(_multiplexer.GetEndPoints()[0]).FlushDatabase(); _cacheEngine = new CacheEngine(new RedisCacheProvider(_multiplexer)); }
public RedisCacheProvider(ConfigurationOptions options, MessagePack.MessagePackSerializerOptions mspOptions = null) : this() { Option = mspOptions ?? MessagePack.Resolvers.ContractlessStandardResolver.Options; Connection = ConnectionMultiplexer.Connect(options); var server = Connection.GetServer(Connection.GetEndPoints()[0]); _LuaCache = LuaScript.Prepare(@"redis.call('hset',@timerkey,'mode',@mode); redis.call('hset',@timerkey,'counter',@timer); redis.call('hset',@timerkey,'creation',@creation); redis.call('set',@key,@value);"); _LuaDel = LuaScript.Prepare(@"redis.call('del',@timerkey); redis.call('del',@key); return nil;"); _LuaGet = LuaScript.Prepare($@"local mode = tonumber(redis.call('hget',@timerkey,'mode')); if mode == nil then return nil; end if mode == {(byte)TimeOutMode.Never} then return redis.call('get',@key); elseif mode == {(byte)TimeOutMode.AccessCount} then local cnt = tonumber(redis.call('hincrby',@timerkey,'counter',-1)); if cnt > 0 then return redis.call('get',@key); elseif cnt == 0 then local tmp = redis.call('get',@key); redis.call('del',@timerkey); redis.call('del',@key); return tmp; else redis.call('del',@timerkey); redis.call('del',@key); return nil; end elseif mode == {(byte)TimeOutMode.FromCreate} then local crt = tonumber(redis.call('hget',@timerkey,'creation')); if @now - crt < tonumber(redis.call('hget',@timerkey,'counter')) then return redis.call('get',@key); else redis.call('del',@timerkey); redis.call('del',@key); return nil; end else local crt = tonumber(redis.call('hget',@timerkey,'creation')); if @now - crt < tonumber(redis.call('hget',@timerkey,'counter')) then redis.call('hset',@timerkey,'creation',@now); return redis.call('get',@key); else redis.call('del',@timerkey); redis.call('del',@key); return nil; end end "); _LuaExists = LuaScript.Prepare($@"local mode = tonumber(redis.call('hget',@timerkey,'mode')); if mode == nil then return 0; end if mode == {(byte)TimeOutMode.Never} then return 1 elseif mode == {(byte)TimeOutMode.AccessCount} then return 1 elseif mode == {(byte)TimeOutMode.FromCreate} then local crt = tonumber(redis.call('hget',@timerkey,'creation')); if @now - crt < tonumber(redis.call('hget',@timerkey,'counter')) then return 1 else redis.call('del',@timerkey); redis.call('del',@key); return 0; end else local crt = tonumber(redis.call('hget',@timerkey,'creation')); if @now - crt < tonumber(redis.call('hget',@timerkey,'counter')) then return 1 else redis.call('del',@timerkey); redis.call('del',@key); return 0; end end"); _LuaCacheSub = LuaScript.Prepare(@"redis.call('hset',@timerkey,'mode',@mode); redis.call('hset',@timerkey,'counter',@timer); redis.call('hset',@timerkey,'creation',@creation); redis.call('hset',@key,@subkey,@value);"); _LuaDelSub = LuaScript.Prepare(@"redis.call('del',@timerkey); redis.call('hdel',@key,@subkey); return nil;"); _LuaGetSub = LuaScript.Prepare($@"local mode = tonumber(redis.call('hget',@timerkey,'mode')); if mode == nil then return nil; end if mode == {(byte)TimeOutMode.Never} then return redis.call('hget',@key,@subkey); elseif mode == {(byte)TimeOutMode.AccessCount} then local cnt = tonumber(redis.call('hincrby',@timerkey,'counter',-1)); if cnt > 0 then return redis.call('hget',@key,@subkey); elseif cnt == 0 then local tmp = redis.call('hget',@key,@subkey); redis.call('del',@timerkey); redis.call('hdel',@key,@subkey); return tmp; else redis.call('del',@timerkey); redis.call('hdel',@key,@subkey); return nil; end elseif mode == {(byte)TimeOutMode.FromCreate} then local crt = tonumber(redis.call('hget',@timerkey,'creation')); if @now - crt < tonumber(redis.call('hget',@timerkey,'counter')) then return redis.call('hget',@key,@subkey); else redis.call('del',@timerkey); redis.call('hdel',@key,@subkey); return nil; end else local crt = tonumber(redis.call('hget',@timerkey,'creation')); if @now - crt < tonumber(redis.call('hget',@timerkey,'counter')) then redis.call('hset',@timerkey,'creation',@now); return redis.call('hget',@key,@subkey); else redis.call('del',@timerkey); redis.call('hdel',@key,@subkey); return nil; end end"); _LuaExistsSub = LuaScript.Prepare($@"local mode = tonumber(redis.call('hget',@timerkey,'mode')); if mode == nil then return 0; end if mode == {(byte)TimeOutMode.Never} then return 1 elseif mode == {(byte)TimeOutMode.AccessCount} then return 1 elseif mode == {(byte)TimeOutMode.FromCreate} then local crt = tonumber(redis.call('hget',@timerkey,'creation')); if @now - crt < tonumber(redis.call('hget',@timerkey,'counter')) then return 1 else redis.call('del',@timerkey); redis.call('hdel',@key,@subkey); return 0; end else local crt = tonumber(redis.call('hget',@timerkey,'creation')); if @now - crt < tonumber(redis.call('hget',@timerkey,'counter')) then return 1; else redis.call('del',@timerkey); redis.call('hdel',@key,@subkey); return 0; end end"); }
public IServer FirstServer() { EndPoint[] endPoint = connection.GetEndPoints(); return(this.GetConnection().GetServer(endPoint[0])); }
public IEnumerable <string> GetAllKeys() => _conn.GetEndPoints().Select(endPoint => _conn.GetServer(endPoint)) .SelectMany(server => server.Keys().ToStrings());
public List <string> Keys(string patten = "*") { return(_cnn.GetServer(_cnn.GetEndPoints()[0]).Keys(pattern: "*").Select(b => b.ToString()).ToList()); }
private List <RedisKey> GetRemoveKeys(string pattern) { var endPoint = _connection.GetEndPoints().FirstOrDefault(); return(_connection.GetServer(endPoint).Keys(pattern: $"*{pattern}*").ToList()); }
/// <summary> /// 分页获取所有Keys /// </summary> /// <param name="database"></param> /// <param name="pageSize"></param> /// <param name="pageOffset"></param> /// <returns></returns> public IList <RedisKey> GetAllKeys(int database = 0, int pageSize = 10, int pageOffset = 0) { return(_redis.GetServer(_redis.GetEndPoints()[0]).Keys(database, pageSize: pageSize, pageOffset: pageOffset).ToList()); }
/// <summary> /// 返回模式匹配的所有键,影响性能,慎用!!! /// </summary> /// <param name="p_patternKey"></param> /// <returns></returns> public static IEnumerable <RedisKey> Keys(string p_patternKey) { var server = _muxer.GetServer(_muxer.GetEndPoints(true)[0]); return(server.Keys(_muxer.GetDatabase().Database, p_patternKey)); }
/// <summary> /// 获取全部终结点 /// </summary> /// <returns></returns> public EndPoint[] GetEndPoints() { EndPoint[] endpoints = _conn.GetEndPoints(); return(endpoints); }
public IServer GetServer() { return(_connectionMultiplexer.GetServer(_connectionMultiplexer.GetEndPoints()[0])); }
public void Setup() { connection.GetServer(connection.GetEndPoints()[0]).FlushAllDatabases(); }
public static IServer GetServer() { ConnectionMultiplexer connection = GetConnection(); return(connection.GetServer(connection.GetEndPoints()[0])); }
internal static IServer GetServer(ConnectionMultiplexer conn) { return(conn.GetServer(conn.GetEndPoints()[0])); }
public static IServer GetFirstServer(this ConnectionMultiplexer redis) { var endpoint = redis?.GetEndPoints()?.FirstOrDefault(); return(endpoint == null ? null : redis.GetServer(endpoint)); }
public static IServer GetCurrentServer() { ConnectionMultiplexer _manager = Manager; return(_manager.GetServer(_manager.GetEndPoints()[0])); }
public string[] Keys(string pattern) { var redisServer = _redis.GetServer(_redis.GetEndPoints().First()); return(redisServer.Keys(0, pattern).Select(x => (string)x).ToArray()); }
public RankViewComponent(ConnectionMultiplexer redis) { _db = redis.GetDatabase(); _redis = redis; _server = redis.GetServer(redis.GetEndPoints()[0]); }
public RedisRepository FlushAll() { _Connecter.GetServer(_Connecter.GetEndPoints()[0]).FlushAllDatabases(); return(this); }
private IServer GetServer() { var endpoint = _redis.GetEndPoints(); return(_redis.GetServer(endpoint.First())); }
public override string ToString() { return(String.Format("redis://{0}/{1}", String.Join(",", ServerPool.GetEndPoints().Select(x => reg.Replace(x.ToString(), String.Empty))), Db)); }