先说结论:推荐使用 【CSRedisCore】
原因:①号称Redis官方推荐的插件 ②功能应该是最全的 ③注释完美
------------------------------------------------------那么分割线来了----------------------------------------------------------
接口
public interface IRedisHelper { bool SetString(string key,string value); string GetString(string key); void DeleteKey(string key); void LPush(string key, string value); void RPush(string key, string value); string LPop(string key); string RPop(string key); void SAdd(string key, string value); string SPop(string key); }
【CSRedisCore】
public class CsRedisHelper : IRedisHelper { private static CSRedisClient _redisClient = new CSRedisClient("127.0.0.1:6379,password=jiang123"); public bool SetString(string key, string value) { return _redisClient.Set(key,value); } public string GetString(string key) { return _redisClient.Get(key); } public void LPush(string key, string value) { _redisClient.LPush(key,value); } public void RPush(string key, string value) { _redisClient.RPush(key,value); } public string LPop(string key) { return _redisClient.LPop(key); } public string RPop(string key) { return _redisClient.RPop(key); } public void SAdd(string key, string value) { _redisClient.SAdd(key,value); } public string SPop(string key) { return _redisClient.SPop(key); } public bool Set<T>(string key,T value) { return _redisClient.Set(key,value); } public T Get<T>(string key) { return _redisClient.Get<T>(key); } public void DeleteKey(string key) { _redisClient.Del(key); } }
【ServiceStack.Redis】
public class ServiceStackRedisHelper : IRedisHelper { private static readonly RedisClient _redisClient = new RedisClient("127.0.0.1", 6379, "jiang123",0); public bool SetString(string key, string value) { return _redisClient.Set(key,value); } public string GetString(string key) { return _redisClient.Get<string>(key); } public void LPush(string key, string value) { _redisClient.LPush(key, System.Text.Encoding.Default.GetBytes(value)); } public void RPush(string key, string value) { _redisClient.RPush(key, System.Text.Encoding.Default.GetBytes(value)); } public string LPop(string key) { return System.Text.Encoding.Default.GetString(_redisClient.LPop(key)); } public string RPop(string key) { return System.Text.Encoding.Default.GetString(_redisClient.RPop(key)); } public void SAdd(string key, string value) { _redisClient.SAdd(key, System.Text.Encoding.Default.GetBytes(value)); } public string SPop(string key) { return System.Text.Encoding.Default.GetString(_redisClient.SPop(key)); } public void Set<T>(string key, T value) { _redisClient.Set(key,value); } public T Get<T>(string key) { return _redisClient.Get<T>(key); } public void DeleteKey(string key) { _redisClient.Delete(key); } }
【StackExchange.Redis】
public class StackExchangeRedisHelper : IRedisHelper { private IDatabase _redisClient = ConnectionMultiplexer.Connect("172.30.37.23:6379,password=jiang123").GetDatabase(0); public bool SetString(string key, string value) { return _redisClient.StringSet(key, value); } public string GetString(string key) { return _redisClient.StringGet(key); } public void LPush(string key,string value) { _redisClient.ListLeftPush(key, value); } public void RPush(string key, string value) { _redisClient.ListRightPush(key,value); } public string LPop(string key) { return _redisClient.ListLeftPop(key); } public string RPop(string key) { return _redisClient.ListRightPop(key); } public void SAdd(string key, string value) { _redisClient.SetAdd(key,value); } public string SPop(string key) { return _redisClient.SetPop(key); } public void Set<T>(string key,T t) { _redisClient.StringSet(key,JsonConvert.SerializeObject(t)); } public T Get<T>(string key) { return JsonConvert.DeserializeObject<T>(_redisClient.StringGet(key)); } public void DeleteKey(string key) { _redisClient.KeyDelete(key); } }
【CSRedisCore】缺点:貌似无明显缺点
【ServiceStack.Redis】缺点:感觉字节数组与字符串的转化不必要
【StackExchange.Redis】缺点:对泛型支持不够