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文件:https://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();
}
}

最新文章

  1. eclipse自动补全快捷键失效,sysout用不了!
  2. HTML5移动端图片上传模块
  3. ajax分页
  4. 【bzoj3150】 cqoi2013—新Nim游戏
  5. Xcode 之自己编译静态库
  6. Oracle笔记 目录索引
  7. HIVE Transform using 用法
  8. 初遇ping++
  9. VS2015 Cordova Ionic移动开发(四)
  10. Yii widget使用
  11. 页面爬虫(获取其他页面HTML)加载到自己页面
  12. 有效的XML: DTD(文档类型定义)介绍(转)
  13. Vacations
  14. 2017最新PHP经典面试题目汇总(上篇)
  15. 实现WebSocket和WAMP协议的开源库WampSharp
  16. 重写equals时,遵守的规定
  17. 基础知识:编程语言介绍、Python介绍、Python解释器安装、运行Python解释器的两种方式、变量、数据类型基本使用
  18. BZOJ.2616.SPOJ PERIODNI(笛卡尔树 树形DP)
  19. Mongodb数据库学习
  20. python josn包

热门文章

  1. 2021夏季学期华清大学EE数算OJ1:算数问题
  2. react 疑问集锦
  3. SRIO RapidIO (SRIO)协议介绍(-)
  4. 印尼医疗龙头企业Halodoc的数据平台转型之Lakehouse架构
  5. java接口多实现注入方法总结
  6. SpringCloud Alibaba Sentinel 限流详解
  7. Acwing787.归并排序
  8. VMware Workstation 虚拟机详细安装教程
  9. Spring Boot 实践 :Spring Boot + MyBatis
  10. SAP 实例 1 Images in HTML