1、下载nuget包:StackExchange.Redis; 并引用
using StackExchange.Redis;
2、配置信息
/* Redis缓存配置 */"Redis": {"Enabled": true,"ConnectionString": "127.0.0.1:6379,password=123456"}
3、配置模型
public class RedisConfig{public bool Enabled { get; set; }public string ConnectionString { get; set; }}
4、编写帮助类
public class RedisHelper{private static bool enabled = AppSettings.app(new string[] { "Redis", "Enabled" }).ToUpper() == "TRUE" ? true : false;private static string connectionString = AppSettings.app(new string[] { "Redis", "ConnectionString" });private static ConnectionMultiplexer redis;private static IDatabase db;private static bool isRun = false;static RedisHelper(){if (enabled){if (IsRedisRunning()){// 创建连接redis = ConnectionMultiplexer.Connect(connectionString);db = redis.GetDatabase();}}else{isRun = false;}}/// <summary>/// 创建模型/// </summary>/// <returns></returns>/// <exception cref="Exception"></exception>static RedisConfig GetRedisConfig(){if (string.IsNullOrWhiteSpace(connectionString)){throw new Exception("未获取到配置的Redis连接字符串信息!请检查");}var redisConfig = new RedisConfig(){Enabled = enabled,ConnectionString = connectionString,};return redisConfig;}/// <summary>/// 判断Redis是否在运行/// </summary>/// <returns></returns>static bool IsRedisRunning(){try{// 创建Redis连接ConnectionMultiplexer connection = ConnectionMultiplexer.Connect(connectionString);// 获取Redis数据库实例IDatabase db = connection.GetDatabase();// 创建GUID、随机数Random random = new Random();var testValue = Guid.NewGuid().ToString() + "|" + random.Next(0, 100).ToString();// 执行一个简单的SET命令db.StringSet("testKey", testValue);// 执行一个简单的GET命令string value = db.StringGet("testKey");// 关闭连接connection.Close();// 如果能够成功执行SET和GET命令,则认为Redis正在运行isRun = true;return value == testValue;}catch (Exception ex){// 发生异常,可能是Redis未启动或连接失败Console.WriteLine("Error: Redis运行失败。" + ex.Message);return false;}}#region 增删改查 (启动 && 在运行)// 添加数据public static void Add(string key, string value){if (isRun){db.StringSet(key, value);}}// 查询数据public static string Get(string key){if (isRun){return db.StringGet(key);}return "";}// 更新数据public static void Update(string key, string value){if (isRun){db.StringSet(key, value);}}// 删除数据public static void Delete(string key){if (isRun){db.KeyDelete(key);}}#endregion}
帮助类里边有对Redis是否运行进行了一个判断,防止不使用的兄弟在不使用该功能的是否不会出错。
还可以考虑在需要但是没运行时添加日志记录,或者使用其他类似于队列等后续处理
5、测试。
我们可以在用户登录的时候进行缓存token信息。(后续会对其进行过期处理)
var token = JwtHelper.GenerateToken(jwtClaim);
RedisHelper.Add("Login:" + para.UserName, token);
return ApiResultHelper.Success(token);
使用“:”划分文件夹。Login为文件夹名称。
6、结果:
正常运行的话是会存入进去的。
不启动或未启动Redis服务时,是不写入的。
7、其他
以上就是对Redis的简单应用了。
在在增删改查的操作中,我们也可以添加一个是否存在key的判断。