.Net 5.0快速上手 Redis
1. Redis的安裝地址:
2.開啟服務:
找到redis目錄 打開cmd 輸入redis-server.exe redis.windows.conf
看到如下圖說明服務開啟成功

3.基本操作:
再開一個控制台同樣是redis目錄下
redis-cli.exe -h 127.0.0.1 -p 6379
set myKey abc(myKey即Key,abc即value,set存)
get myKey(get讀)

4.Redis在C#中的實際用法:
注意:在使用redis 快取時,必須先啟動服務 redis-server.exe redis.windows.conf
dll文件://files.cnblogs.com/files/lbjlbj/dll.7z
可能會存在ConfigurationManager會報錯,還需自行搜索添加引用,

奉上RedisHelper類
/// <summary> /// Redis 操作類 /// </summary> public class RedisHelper { /// <summary> /// 連接字元串 /// </summary> private static readonly string _connectionStr = ConfigurationManager.ConnectionStrings["RedisConnectionString"].ConnectionString; /// <summary> /// 鎖 /// </summary> private readonly object _lock = new object(); /// <summary> /// 連接對象 /// </summary> private volatile IConnectionMultiplexer _connection; /// 資料庫 /// </summary> private IDatabase _db; public RedisHelper() { _connection = ConnectionMultiplexer.Connect(_connectionStr); _db = GetDatabase(); } /// <summary> /// 獲取連接 /// </summary> /// <returns></returns> protected IConnectionMultiplexer GetConnection() { if (_connection != null && _connection.IsConnected) { return _connection; } lock (_lock) { if (_connection != null && _connection.IsConnected) { return _connection; } if (_connection != null) { _connection.Dispose(); } _connection = ConnectionMultiplexer.Connect(_connectionStr); } return _connection; } /// <summary> /// 獲取資料庫 /// </summary> /// <param name="db"></param> /// <returns></returns> public IDatabase GetDatabase(int? db = null) { return GetConnection().GetDatabase(db ?? -1); } /// <summary> /// 設置快取 /// </summary> /// <param name="key">鍵</param> /// <param name="data">值</param> /// <param name="cacheDate">設置時間</param> public virtual void SetCache(string key,object data,int cacheDate) { if (data == null) return; var entryBytes = Serialize(data); var expiresIn = TimeSpan.FromMinutes(cacheDate); _db.StringSet(key, entryBytes, expiresIn); } public virtual T GetT<T>(string key) { var rValue = _db.StringGet(key); if (!rValue.HasValue) return default(T); var result = Deserialize<T>(rValue); return result; } /// <summary> /// 反序列化 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="serializedObject"></param> /// <returns></returns> protected virtual T Deserialize<T>(byte[] serializedObject) { if (serializedObject == null) { return default(T); } var json = Encoding.UTF8.GetString(serializedObject); return JsonConvert.DeserializeObject<T>(json); } /// <summary> /// 序列化 /// </summary> /// <param name="data"></param> /// <returns>byte[]</returns> private byte[] Serialize(object data) { var json = JsonConvert.SerializeObject(data); return Encoding.UTF8.GetBytes(json); } /// <summary> /// 判斷是否設置 /// </summary> /// <param name="key"></param> /// <returns></returns> public virtual bool IsSet(string key) { return _db.KeyExists(key); } }
AppConfig中配置:
<connectionStrings> <add name="RedisConnectionString" connectionString="localhost"/> </connectionStrings>
最後功能實現:
internal class Program { static void Main(string[] args) { string data = "a"; new RedisHelper().SetCache("abc",data,10); Console.WriteLine("ok"); Console.ReadKey(); } }