C# Redis实战(三)

释放双眼,带上耳机,听听看~!

三、程序配置

在C# Redis实战(二)中我们安装好了Redis的系统服务,此时Redis服务已经运行。

现在我们需要让我们的程序能正确读取到Redis服务地址等一系列的配置信息,首先,需要在Web.config文件中添加如下信息:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1<?xml version="1.0" encoding="utf-8"?>
2<!--
3  有关如何配置 ASP.NET 应用程序的详细信息,请访问
4  http://go.microsoft.com/fwlink/?LinkId=169433
5  -->
6<configuration>
7  <configSections>
8    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
9    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
10    <section name="RedisConfig" type="RedisDemo.RedisConfigInfo, RedisDemo"/>
11  </configSections>
12  <RedisConfig WriteServerList="127.0.0.1:6379" ReadServerList="127.0.0.1:6379" MaxWritePoolSize="60"
13        MaxReadPoolSize="60" AutoStart="true" LocalCacheTime="180" RecordeLog="false">
14  </RedisConfig>
15  <connectionStrings>
16    <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-RedisDemo-20131125110945;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-RedisDemo-20131125110945.mdf" />
17  </connectionStrings>
18
19</configuration>
20

有了以上信息还不够,还需要用C#代码来读取并且操作,获取Redis配置的程序如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
1 public static RedisConfigInfo GetConfig()
2        {
3            RedisConfigInfo section = (RedisConfigInfo)ConfigurationManager.GetSection("RedisConfig");
4            return section;
5        }
6
7        public static RedisConfigInfo GetConfig(string sectionName)
8        {
9            RedisConfigInfo section = (RedisConfigInfo)ConfigurationManager.GetSection("RedisConfig");
10            if (section == null)
11                throw new ConfigurationErrorsException("Section " + sectionName + " is not found.");
12            return section;
13        }
14

Redis管理类代码:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
1 /// <summary>
2        /// redis配置文件信息
3        /// </summary>
4        private static RedisConfigInfo redisConfigInfo = RedisConfigInfo.GetConfig();
5
6        private static PooledRedisClientManager prcm;
7
8        /// <summary>
9        /// 静态构造方法,初始化链接池管理对象
10        /// </summary>
11        static RedisManager()
12        {
13            CreateManager();
14        }
15
16
17        /// <summary>
18        /// 创建链接池管理对象
19        /// </summary>
20        private static void CreateManager()
21        {
22            string[] writeServerList = SplitString(redisConfigInfo.WriteServerList, ",");
23            string[] readServerList = SplitString(redisConfigInfo.ReadServerList, ",");
24
25            prcm = new PooledRedisClientManager(readServerList, writeServerList,
26                             new RedisClientManagerConfig
27                             {
28                                 MaxWritePoolSize = redisConfigInfo.MaxWritePoolSize,
29                                 MaxReadPoolSize = redisConfigInfo.MaxReadPoolSize,
30                                 AutoStart = redisConfigInfo.AutoStart,
31                             });
32        }
33
34        private static string[] SplitString(string strSource, string split)
35        {
36            return strSource.Split(split.ToArray());
37        }
38
39        /// <summary>
40        /// 客户端缓存操作对象
41        /// </summary>
42        public static IRedisClient GetClient()
43        {
44            if (prcm == null)
45                CreateManager();
46
47            return prcm.GetClient();
48        }
49

如需转载,请注明出处,本系列博文示例程序下载地址

给TA打赏
共{{data.count}}人
人已打赏
安全技术

JavaScript面向对象编程(9)快速构建继承关系之整合原型链

2021-12-21 16:36:11

安全技术

从零搭建自己的SpringBoot后台框架(二十三)

2022-1-12 12:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索