1、nuget StackExchange.Redis

2、建立RedisHelper类:

  1. public class RedisHelper
  2. {
  3. /// <summary>
  4. /// 连接字符串
  5. /// </summary>
  6. private static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["RedisConnectionString"].ConnectionString;
  7. /// <summary>
  8. /// 锁
  9. /// </summary>
  10. private readonly object _lock = new object();
  11. /// <summary>
  12. /// 连接对象
  13. /// </summary>
  14. private volatile IConnectionMultiplexer _connection;
  15. /// <summary>
  16. /// 数据库
  17. /// </summary>
  18. private IDatabase _db;
  19. public RedisHelper()
  20. {
  21. _connection = ConnectionMultiplexer.Connect(ConnectionString);
  22. _db = GetDatabase();
  23. }
  24. /// <summary>
  25. /// 获取连接
  26. /// </summary>
  27. /// <returns></returns>
  28. protected IConnectionMultiplexer GetConnection()
  29. {
  30. if (_connection != null && _connection.IsConnected)
  31. {
  32. return _connection;
  33. }
  34. lock (_lock)
  35. {
  36. if (_connection != null && _connection.IsConnected)
  37. {
  38. return _connection;
  39. }
  40.  
  41. if (_connection != null)
  42. {
  43. _connection.Dispose();
  44. }
  45. _connection = ConnectionMultiplexer.Connect(ConnectionString);
  46. }
  47.  
  48. return _connection;
  49. }
  50. /// <summary>
  51. /// 获取数据库
  52. /// </summary>
  53. /// <param name="db"></param>
  54. /// <returns></returns>
  55. public IDatabase GetDatabase(int? db = null)
  56. {
  57. return GetConnection().GetDatabase(db ?? -);
  58. }
  59. /// <summary>
  60. /// 设置
  61. /// </summary>
  62. /// <param name="key">键</param>
  63. /// <param name="data">值</param>
  64. /// <param name="cacheTime">时间</param>
  65. public virtual void Set(string key, object data, int cacheTime)
  66. {
  67. if (data == null)
  68. {
  69. return;
  70. }
  71. var entryBytes = Serialize(data);
  72. var expiresIn = TimeSpan.FromMinutes(cacheTime);
  73.  
  74. _db.StringSet(key, entryBytes, expiresIn);
  75. }
  76. /// <summary>
  77. /// 根据键获取值
  78. /// </summary>
  79. /// <typeparam name="T"></typeparam>
  80. /// <param name="key"></param>
  81. /// <returns></returns>
  82. public virtual T Get<T>(string key)
  83. {
  84.  
  85. var rValue = _db.StringGet(key);
  86. if (!rValue.HasValue)
  87. {
  88. return default(T);
  89. }
  90.  
  91. var result = Deserialize<T>(rValue);
  92.  
  93. return result;
  94. }
  95. /// <summary>
  96. /// 反序列化
  97. /// </summary>
  98. /// <typeparam name="T"></typeparam>
  99. /// <param name="serializedObject"></param>
  100. /// <returns></returns>
  101. protected virtual T Deserialize<T>(byte[] serializedObject)
  102. {
  103. if (serializedObject == null)
  104. {
  105. return default(T);
  106. }
  107. var json = Encoding.UTF8.GetString(serializedObject);
  108. return JsonConvert.DeserializeObject<T>(json);
  109. }
  110. /// <summary>
  111. /// 判断是否已经设置
  112. /// </summary>
  113. /// <param name="key"></param>
  114. /// <returns></returns>
  115. public virtual bool IsSet(string key)
  116. {
  117. return _db.KeyExists(key);
  118. }
  119. /// <summary>
  120. /// 序列化
  121. /// </summary>
  122. /// <param name="data"></param>
  123. /// <returns>byte[]</returns>
  124. private byte[] Serialize(object data)
  125. {
  126. var json = JsonConvert.SerializeObject(data);
  127. return Encoding.UTF8.GetBytes(json);
  128. }
  129. }

3、查看远程Redis端口是否开放:

如果没有开放的话,请修改Redis的conf文件的bind:127.0.0.1 改为 bind 0.0.0.0

Redis(二):c#连接Redis的更多相关文章

  1. 4.用Redis Desktop Manager连接Redis(Windows)

    相比连接CentOS的Redis,在Windows中的操作简单得让人感动. 所以这里我们使用的服务器系统是Windows Server 2016 R2. 而Windows版本的Redis官方网站并没有 ...

  2. Redis Desktop Manager连接Redis 遇到的一系列问题

    最近在做一个土地项目的后台,主要是一个信息采集调查系统,使用的框架是: * 核心框架:Spring Framework 4.2 * 日志管理:SLF4J 1.7.Log4j 1.2 * 视图框架:Sp ...

  3. 3.用Redis Desktop Manager连接Redis

    Redis Desktop Manager是Redis图形化管理工具,方便管理人员更方便直观地管理Redis数据. 然而在使用Redis Desktop Manager之前,有几个要素需要注意: 一. ...

  4. 用Redis Desktop Manager连接Redis

    Redis Desktop Manager是Redis图形化管理工具,方便管理人员更方便直观地管理Redis数据. 然而在使用Redis Desktop Manager之前,有几个要素需要注意: 一. ...

  5. [ 搭建Redis本地服务器实践系列三 ] :图解Redis客户端工具连接Redis服务器

    上一章 [ 搭建Redis本地服务器实践系列二 ] :图解CentOS7配置Redis  介绍了Redis的初始化脚本文件及启动配置文件,并图解如何以服务的形式来启动.终止Redis服务,可以说我们的 ...

  6. Redis(二十一):Redis性能问题排查解决手册(转)

    性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息.通过这些信息来分析文章后面提到的一些性能指标. info命令输出的数 ...

  7. 用Redis Desktop Manager连接Redis(CentOS)

    Redis Desktop Manager是Redis图形化管理工具,方便管理人员更方便直观地管理Redis数据. 然而在使用Redis Desktop Manager之前,有几个要素需要注意: 一. ...

  8. 3.用Redis Desktop Manager连接Redis(CentOS)

    Redis Desktop Manager是Redis图形化管理工具,方便管理人员更方便直观地管理Redis数据. 然而在使用Redis Desktop Manager之前,有几个要素需要注意: 一. ...

  9. Redis系列-远程连接redis并给redis加锁

    假设两台redis服务器,ip分别为:192.168.1.101和192.168.1.103,如何在101上通过redis-cli访问103上的redis呢?在远程连接103之前,先讲下redis-c ...

  10. Redis记录-JAVA连接Redis

    在Java程序中使用Redis之前,需要确保在机器上安装了Redis的Java驱动程序和Java环境.可以先在将Java电脑上并配置好环境. 安装 现在,让我们看看如何设置Redis Java驱动程序 ...

随机推荐

  1. 如何对react进行性能优化

    React本身就非常关注性能,其提供的虚拟DOM搭配上DIff算法,实现对DOM操作最小粒度的改变也是非常高效的,然而其组件的渲染机制,也决定了在对组件更新时还可以进行更细致的优化.  react组件 ...

  2. WCF系列教程之WCF中的会话

    本文参考自http://www.cnblogs.com/wangweimutou/p/4516224.html,纯属读书笔记,加深记忆 一.WCF会话简介 1.在WCF应用程序中,回话将一组消息相互关 ...

  3. pycharm使用github

    pycharm使用github 绑定账号 File-settings 在搜索框输入git 会出现github,然后在旁边输入你github的用户名和密码,可以点击”test”测试一下,如果出现: Co ...

  4. Spring源码深度解析系列-----------org.springframework.aop-3.0.6.RELEASE

    Spring源码深度解析系列-----------org.springframework.aop-3.0.6.RELEASE

  5. [心平气和读经典]The TCP/IP Guide(001)

    The TCP/IP Guide[Page 40,41] Introduction To the TCP/IP Guide | TCP/IP指南概述 As I sit here writing thi ...

  6. 话说C语言的关键字volatile

    最近搞NVMe驱动需求分析,对volatile这个单词实在是再熟悉不过了. 而在C语言中,有一个关键字就叫做volatile, 其字面意思是"挥发性的, 不稳定的,可改变的". 那 ...

  7. 介绍Windows Azure HDInsight服务的Hadoop Storm的视频

    介绍Windows Azure HDInsight服务的Hadoop Storm的原理,用例及开发入门的视频,收藏一下: http://channel9.msdn.com/Shows/Data-Exp ...

  8. redis数据类型(三)hash类型

    一.hash类型   hash是一个string类型的field和value的映射表.添加,删除操作都是O(1)(平均).   hash特别适合用于存储对象.相对于将对象的每个字段存成单个string ...

  9. Nginx教程(五) Nginx配置文件详解

    一. Nginx配置文件nginx.conf中文详解 #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processe ...

  10. Jquery 搜索框自动提示

    为文本框增加自动提示下拉功能,比如输入 1,则从后台数据库查询出包含1 的字段,在文本框增加下拉列表供用户选择 ajax 返回数据为搜索查询字段的json集合 <script src=" ...