Redis可以作为数据库,提供高速缓存,消息队列等功能,这里介绍Redis可以做的其中两件事:

1.提供缓存功能,作为缓存服务器;

2.轻量级的消息队列(MQ)进行使用.

 /// <summary>/// Redis帮助类/// </summary>public class RedisHelper{/// <summary>/// 往消息队列中放入数据/// </summary>/// <param name="listId">队列Id</param>/// <param name="value">数据</param>public static void Enqueue(string listId, string value){using (IRedisClient client = RedisManager.ClientManager.GetClient()){client.EnqueueItemOnList(listId, value);}return;}/// <summary>/// 从消息队列中取出数据/// </summary>/// <param name="listId">队列Id</param>/// <returns></returns>public static string Dequeue(string listId){using (IRedisClient client = RedisManager.ClientManager.GetClient()){return client.DequeueItemFromList(listId);}}/// <summary>/// 从消息队列中取出数据/// </summary>/// <param name="redisClient"></param>/// <param name="listId"></param>/// <returns></returns>public static string Dequeue(IRedisClient redisClient, string listId){return redisClient.DequeueItemFromList(listId);}/// <summary>/// Redis写/// </summary>/// <typeparam name="T"></typeparam>/// <param name="key">键</param>/// <param name="value">值</param>/// <param name="cacheTime">缓存时间(分钟)</param>/// <returns></returns>public static bool Set<T>(string key, T value, int cacheTime = 0){using (IRedisClient client = RedisManager.ClientManager.GetClient()){if (cacheTime <= 0){return client.Set<T>(key, value);}return client.Set<T>(key, value, DateTime.Now.AddMinutes(cacheTime));}}/// <summary>/// Redis读/// </summary>/// <typeparam name="T"></typeparam>/// <param name="key">键</param>/// <returns></returns>public static T Get<T>(string key){using (IRedisClient client = RedisManager.ClientManager.GetClient()){return client.Get<T>(key);}}}/// <summary>/// Redis管理类/// </summary>public class RedisManager{public static PooledRedisClientManager ClientManager { get; private set; }static RedisManager(){RedisClientManagerConfig redisConfig = new RedisClientManagerConfig();redisConfig.MaxWritePoolSize = 128;redisConfig.MaxReadPoolSize = 128;ClientManager = new PooledRedisClientManager(new string[] { "127.0.0.1" }, new string[] { "127.0.0.1" }, redisConfig);}}

  

消息队列数据消费方示例代码:

 JavaScriptSerializer serializer = new JavaScriptSerializer();//数据消费者while (true){string data = RedisHelper.Dequeue("sendActiveEmail");if (data != null){EmailModel emailModel = (EmailModel)serializer.Deserialize(data, typeof(EmailModel));Console.WriteLine("发送邮件:" + emailModel.MailTo);CommonHelper.SendEmail(emailModel.MailTo, emailModel.Subject, emailModel.Body, true);Console.WriteLine("发送邮件完成");}else{Thread.Sleep(500);}}

  

附:

Redis驱动开发包(.dll):

转载于:https://www.cnblogs.com/miaosha5s/p/5371347.html

Redis可以做哪些事儿?相关推荐

  1. php redis用途,redis可以做什么?

    redis可以做缓存,这在提升服务器性能方面非常有效:redis还可以做排行榜,利用Redis的SortSet数据结构能够轻松实现:redis也可以做"计算器/限速器"等. red ...

  2. Redis——redis能做干什么

    最近阅读了<redis设计与实现>,这是一本比较枯燥的书,毕竟涉及到redis底层数据结构.我写本文章的目的,主要围绕redis设计与实现这本书整体的一个印象,然后梳理了这本书整体思路: ...

  3. Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo

    Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...

  4. C语言对电脑做的事儿啊,总有那么一丝恐怖,C语言操盘电脑两例

    C语言对自己电脑做的事儿啊,总有那么一丝恐怖,C语言与电脑两例 开场先抱歉,偷懒好多天了.今天分享给大家的l两例比较短小精悍,都是针对于计算机屏幕处理的两例,有兴趣的可以放到自己电脑上运行哦.绝对无害 ...

  5. Redis应用---Redis可以用来做什么?

    Redis可以用来干什么? 1.记录帖子的点赞数.评论数和点击数(hash) 2.记录用户的梯子ID列表(排序),便于快速显示用户的帖子列表(zset). 3.记录帖子的标题.摘要.作者和封面信息,用 ...

  6. list redis 怎样做排行_Redis排行榜的设计与实现

    后知后觉,前几天做的自以为挺满意的排行榜,不正是zset的经典实现么,现在的思路全都是查库的操作,由于业务原因,有些是异步操作,难免存在已经计分,但分数还没有入库,这时去查库,导致与实际的分数不一致的 ...

  7. 2017年关于健身要做的事儿

    2016年最大的一笔投资--健身:时间.金钱!不过很值,这使我有了一种全新的生活方式!2017年开始要有一个完善的健身计划! 2016年健身笔记总结 上课时总结的笔记 身体各大肌肉群学习总结 健康饮食 ...

  8. list redis 怎样做排行_学 Redis 的 7000 字小结!!!

    来源:http://rrd.me/ekrCq Redis 简介 Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key - value 数据库 Redis 与 其他 key - va ...

  9. list redis 怎样做排行_redis实现商品销量排行榜

    之前练习做过一个网上商城,采用SSM框架实现.该项目有一个商品排行榜模块没有实现,决定采用springboot+dubbo+redis实现该模块. 1.新建springboot项目. 本项目的spri ...

最新文章

  1. 数据库连接池,实现及分析
  2. SAP Cloud for Customer Price-计价简介
  3. php如何查看上传的文件大小,PHP设置最大上传文件大小
  4. Mariadb使用总结
  5. r语言worldclim数据_R语言空间数据分析(五):栅格数据处理
  6. FZU 1402 猪的安家 中国剩余定理
  7. MVC中如何使用语音识别功能实现输入
  8. excel多列多行堆叠成多列一行_「Excel技巧」如何利用indirect函数快速将一列转为多行多列排版...
  9. matlab函数_常用于连通区域
  10. 一篇关于蓝牙SDP和L2CAP协议的文章
  11. 非常详细的机器学习知识点汇总(一)
  12. 20款网管须知的工具,你知道几个?
  13. 微信小程序仿支付宝滑动图标
  14. 图像处理2:二维图像的频谱图理解
  15. 思科无线服务器,Cisco统一无线网络TACACS+配置
  16. 【读书笔记】《码农翻身》——一本差点被书名耽误的好书
  17. 微信公众号自定义菜单创建接口
  18. 洛谷【p1007】独木桥
  19. mac终端提示You have not agreed to the Xcode license agreements.
  20. matlab的title太长,如何换行?

热门文章

  1. Codeforces Round #387 (Div. 2) A+B+C+D!
  2. [golang note] 工程组织
  3. [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBuild+GitHub)
  4. 用 或 || 取代常规 if - else 结构
  5. SQL中sa 用户不能连接解决方案
  6. 用 #inculde file = ../fiel 报1031错误
  7. jstack 线程状态分析_面试官:说说你是怎么用JDK监控和故障处理工具的吧?例如jstack...
  8. (19)ISE14.7软件生成bit失败永久解决方法(FPGA不积跬步101)
  9. (43)Verilog HDL 二分频设计
  10. oracle 取记录最大的那条记录_新记录!国内跨高速铁路最大、吊装高度最高的钢横梁顺利吊装到位...