先说结论:推荐使用 【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】缺点:对泛型支持不够
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了