一共三个步骤:
一、引入管理Nuget包:StackExchange.Redis
二、书写Redis辅助类
我这里帮大家写好了,直接复制过去使用即可
using Microsoft.Extensions.Caching.Distributed;
using Newtonsoft.Json;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
namespace ReadJson_.Net6._0.Utils
{
public class RedisHelper
{
private static RedisHelper instance; //单例
public static RedisHelper Instance
{
get
{
if (instance == null)
{
instance = new RedisHelper(Connection);
}
return instance;
}
}
/// <summary>
/// redis连接字符串 默认等于本地redis连接
/// </summary>
public static string Connection { get; set; } = "127.0.0.1:6379";
/// <summary>
/// DB索引 默认等于0 比如 有两个同名的redis库 默认读取第一个
/// </summary>
public static int DataBaseIndex { get; set; } = 0 ;
/// <summary>
/// redis连接类 默认连接本地redis库
/// </summary>
public ConnectionMultiplexer Redis { get; set; }
/// <summary>
/// redis库连接 数据读取
/// </summary>
public IDatabase DB { get; set; }
//redis连接
//构造方法为private,可以避免外界通过利用new创建此类实例的可能
private RedisHelper(string connection)
{
Redis = ConnectionMultiplexer.Connect(connection);
DB = Redis.GetDatabase(DataBaseIndex);
}
/// <summary>
/// 删除redis Key
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public bool DeleteKey(string key)
{
return DB.KeyDelete(key);
}
/// <summary>
/// 根据key获取对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <returns></returns>
public T GetObjectByKey<T>(string key)
{
string value = DB.StringGet(key);
if (value == null)
{
return default;
}
return JsonConvert.DeserializeObject<T>(value);
}
/// <summary>
/// 根据key和obj保存数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <param name="obj"></param>
/// <param name="time">数据保存时间,到时自动删除</param>
/// <returns></returns>
public bool SetObjectWithKey<T>(string key, T obj)
{
string json = JsonConvert.SerializeObject(obj);
return DB.StringSet(key, json);
}
public bool SetObjectWithKey<T>(string key, T obj, TimeSpan time)
{
string json = JsonConvert.SerializeObject(obj);
return DB.StringSet(key, json, time);
}
}
}
三、在接口中调用对应操作方法
图中写明了 可以进行你都 增删查的方法,增(默认为 去比对同键的key 是否存在,存在的覆盖),所以不需要改的方法,只有增删查!
Redis 还有更多的操作方法,我这只是罗列了最简单的使用,欢迎大家继续深度挖掘更深的技术,我们互相学习!!!