直接引入StackExchange.Redis.dll来操作redis
using Newtonsoft.Json;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Web.Script.Serialization; namespace Common
{
public class RedisHelper
{
#if FALSE
RedisHelper redislper = new RedisHelper();
使用事例
if (redislper.KeyIsExist(item.Equipmentid, redisadress))//判断是否存在key值
{
var collection = redislper.GetCache<T>(key值);//获取缓存数据
}
//写入缓存
List<T> list = new List<T>();
redislper.SetCache<T>(key值, list);
#endif private string adress = "127.0.0.1:6379";
public RedisHelper() {}
public void SetCache<T>(string key, List<T> value, DateTime? date = null)
{
using (var redis = ConnectionMultiplexer.Connect(adress))
{
//写入
var db = redis.GetDatabase();
db.StringSet(key, JsonConvert.SerializeObject(value));
//设置过期日期
if (date != null)
{
DateTime time = DateTime.Now.AddSeconds();
db.KeyExpire("key", time);
}
} }
/// <summary>
/// 获取指定key的List
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public List<T> GetCache<T>(string key)
{
//var adress = @"127.0.0.1:6379";
using (var redis = ConnectionMultiplexer.Connect(adress))
{
//读取
var db = redis.GetDatabase();
return ConvetList<T>(db.StringGet(key));
} }
/// <summary>
/// 看key是否存在
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public bool KeyIsExist(string key)
{
using (var redis = ConnectionMultiplexer.Connect(adress))
{
//读取
var db = redis.GetDatabase();
return db.KeyExists(key);
} }
public List<T> ConvetList<T>(string JsonStr)
{
JavaScriptSerializer Serializer = new JavaScriptSerializer();
List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);
return objs; }
}
}