博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Redis]c# redis缓存辅助类
阅读量:5872 次
发布时间:2019-06-19

本文共 3103 字,大约阅读时间需要 10 分钟。

///     /// 分布式缓存    ///     public static class RedisCache    {        ///         /// 单例工厂,每次初始化redis客户端从工厂中获取        ///         private static IRedisClientFactory _factory = RedisCacheClientFactory.Instance;        ///         /// 设置redis缓存        ///         /// 
泛型类
/// 缓存键 /// 泛型实体 /// 过期时间 ///
public static bool Set
(string key, T value, DateTime expire) { try { using (var client = GetClient()) { return client.Set
(key, value, expire); } } catch { return false; } } ///
/// 获取缓存 /// ///
实体
///
键值 ///
public static T Get
(string key) { try { using (var client = GetClient()) { return client.Get
(key); } } catch { //如果redis出现异常,则直接返回默认值 return default(T); } } ///
/// 移除缓存 /// ///
public static void Remove(string key) { try { using (var client = GetClient()) { client.Remove(key); } } catch { } } public static void RemoveAll() { try { using (var client = GetClient()) { var keys = client.GetAllKeys(); client.RemoveAll(keys); } } catch { } } ///
/// 获取客户端 /// ///
private static IRedisClient GetClient() { RedisClient client = null; if (string.IsNullOrEmpty(ConfigManager.RedisServer)) { throw new ArgumentNullException("redis server ip is empty."); } if (string.IsNullOrEmpty(ConfigManager.RedisPwd)) { throw new ArgumentNullException("redis server pwd is empty."); } client = _factory.CreateRedisClient(ConfigManager.RedisServer, ConfigManager.RedisPort); client.Password = ConfigManager.RedisPwd; client.Db = ConfigManager.RedisServerDb; return client; } }

用到的程序集

功能描述

可以直接缓存实体类,设置过期时间,移除缓存,获取缓存功能。

使用RedisClientFactory工厂获取redis客户端实例。如果Redis设置了密码,在配置文件中添加修改

client = factory.CreateRedisClient(ConfigManager.RedisServer, ConfigManager.RedisPort);            client.Password = ConfigManager.RedisPwd;

修改redis的ip和端口号,密码即可。

使用场景

具体的使用过程中,使用redis的超时可以对数据进行一些持久化管理,对于一些数据一致性不高的数据进行缓存,使得读取速度提高,使用redis集群时可以是用主从复制功能,Redis集群没有中心节点,并且带有复制和故障转移特性,这可以避免单个节点成为性能瓶颈,或者因为某个节点下线而导致整个集群下线。

转载于:https://www.cnblogs.com/wolf-sun/p/5404593.html

你可能感兴趣的文章
GNS关于IPS&ASA&PIX&Junos的配置
查看>>
七天学会ASP.NET MVC (四)——用户授权认证问题
查看>>
upgrade to iOS7,how to remove stroyboard?
查看>>
影响企业信息化成败的几点因素
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
zabbix监控部署
查看>>
关于Tomcat下项目中文名在Windows和Linux下编码混乱问题解决
查看>>
struts中的xwork源码下载地址
查看>>
Android硬件抽象层(HAL)深入剖析(二)
查看>>
CDays–4 习题一至四及相关内容解析。
查看>>
L3.十一.匿名函数和map方法
查看>>
前端自动化构建工具webpack (一)之webpack安装 和 设置webpack.confi.js
查看>>
java面向对象高级分层实例_实体类
查看>>
Guice 练习 constructorbindings demo
查看>>
android aapt 用法 -- ApkReader
查看>>
[翻译]用 Puppet 搭建易管理的服务器基础架构(3)
查看>>
Android -- AudioPlayer
查看>>
Python大数据依赖包安装
查看>>
Android View.onMeasure方法的理解
查看>>
Node.js 爬虫初探
查看>>