博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET下添加Redis
阅读量:4691 次
发布时间:2019-06-09

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

Redis 是一个开源的使用ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库。Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。
本文主要讲述的是如何使用C#语言来进行Redis分布式缓存的程序编写。首先,需要从github下载最新的32/64位安装,解压后根据自己机器的实际情况选择32位或者64位,例如:我机器是64位win7,于是将64bit下所有文件拷贝到D盘根目录下新建文件夹redis中,或者直接下载Redis服务(可以将此服务设置为windows系统服务,下载 ,安装即可。),我个人比较喜欢这个。

第一步,从Nuget下载Redis,我用的是ServiceStack.Redis,新版本是5.0.2,我怕不稳定,下载了5.0.0

添加后自动引用Dll

第二步,在配置文件添加redis的相关配置

第三步,添加一些基本的读写操作

public class RedisConfigInfo: ConfigurationSection    {        public static RedisConfigInfo GetConfig()        {            RedisConfigInfo section = (RedisConfigInfo)ConfigurationManager.GetSection("RedisConfig");            return section;        }        public static RedisConfigInfo GetConfig(string sectionName)        {            RedisConfigInfo section = (RedisConfigInfo)ConfigurationManager.GetSection("RedisConfig");            if (section == null)                throw new ConfigurationErrorsException("Section " + sectionName + " is not found.");            return section;        }        ///         /// 可写的Redis链接地址        ///         [ConfigurationProperty("WriteServerList", IsRequired = false)]        public string WriteServerList        {            get            {                return (string)base["WriteServerList"];            }            set            {                base["WriteServerList"] = value;            }        }        ///         /// 可读的Redis链接地址        ///         [ConfigurationProperty("ReadServerList", IsRequired = false)]        public string ReadServerList        {            get            {                return (string)base["ReadServerList"];            }            set            {                base["ReadServerList"] = value;            }        }           …………}
public class RedisManager    {        ///         /// redis配置文件信息        ///         private static RedisConfigInfo redisConfigInfo = RedisConfigInfo.GetConfig();        private static PooledRedisClientManager prcm;        ///         /// 静态构造方法,初始化链接池管理对象        ///         static RedisManager()        {            CreateManager();        }        ///         /// 创建链接池管理对象        ///         private static void CreateManager()        {            string[] writeServerList = SplitString(redisConfigInfo.WriteServerList, ",");            string[] readServerList = SplitString(redisConfigInfo.ReadServerList, ",");            prcm = new PooledRedisClientManager(readServerList, writeServerList,                             new RedisClientManagerConfig                             {                                 MaxWritePoolSize = redisConfigInfo.MaxWritePoolSize,                                 MaxReadPoolSize = redisConfigInfo.MaxReadPoolSize,                                 AutoStart = redisConfigInfo.AutoStart,                             });        }        private static string[] SplitString(string strSource, string split)        {            return strSource.Split(split.ToArray());        }        ///         /// 客户端缓存操作对象        ///         public static IRedisClient GetClient()        {            if (prcm == null)                CreateManager();            return prcm.GetClient();        }    }

 

第四步,在controller直接引用贴出部分代码

var redis = RedisManager.GetClient();            var redsiClass = redis.Get
("All");//判断是否已经缓存 if (redsiClass != null) { model = redsiClass; } else { var entity = db.Class.FirstOrDefault(e => e.ClassId == StringKeys.UniversityId); var getClassList = ClassRepository.GetClassListByParentId(StringKeys.UniversityId).OrderBy(a => a.ClassId); var firstOrDefault = getClassList.FirstOrDefault(); model.CollageId = firstOrDefault != null ? firstOrDefault.ClassId : 0; redis.Set
("All", model);//没有则进行添加 db.Dispose(); }

第五步,如果是有新的数据生成应该删除缓存存数据到数据库的

public void Remove(string value)        {            var redis = RedisManager.GetClient();            redis.Remove(value);                 }

以上就是redis简单的使用。

 

如果想要具体的实现步骤可以进CSDN下载相关源码:http://download.csdn.net/download/songlhua/10266722?from=singlemessage&isappinstalled=0#10006-weixin-1-52626-6b3bffd01fdde4900130bc5a2751b6d1

 

转载于:https://www.cnblogs.com/songStar/p/8493645.html

你可能感兴趣的文章
《嵌入式Linux基础教程学习笔记一》
查看>>
通用窗口类 Inventory Pro 2.1.2 Demo1(上)
查看>>
【小白的CFD之旅】19 来自计算网格的困惑
查看>>
将Winform程序快速转换为在浏览器中运行的程序
查看>>
dfhg发过火刚开始
查看>>
APIO2010 特别行动队
查看>>
super关键字
查看>>
多线程爬虫实现(下)
查看>>
GraphQL(二):GraphQL服务搭建
查看>>
JS中的函数浅析
查看>>
干货 | LVS虚拟服务器简介
查看>>
包教不包会系列-javascript 原型链与继承
查看>>
Python学习教程:玩转树莓派—搭建属于自己的云盘服务
查看>>
Python学习教程:用Python做一个三阶拼图
查看>>
Codeforces 1203F2. Complete the Projects (hard version)
查看>>
第一次个人编程作业
查看>>
第8组 团队展示
查看>>
第一次结对编程作业
查看>>
Redis启停脚本
查看>>
RabbitMQ命令行手动创建队列rabbitmqadmin用法
查看>>