应无所住,而生其心
排名
1
文章
858
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

ServiceStack.Redis操作Redis配置单例模式

14865人阅读 2018/12/21 10:09 总访问:5166597 评论:0 收藏:0 手机
分类: Redis

我携漫天星辰以赠你,仍觉漫天星辰不如你。



单利的应该是连接池而不应该是redis对象。如果每次操作都是一个redis对象是会有并发问题的,

应该从连接池中去拿。


解释半天都没有用直接贴代码吧

  1.  public class SingletonRedis
  2.     {
  3.         // 定义一个静态变量来保存类的实例
  4.         private static PooledRedisClientManager poolrl;
  5.         private static readonly object obj = new object();
  6.         // 定义私有构造函数,使外界不能创建该类实例
  7.         private SingletonRedis()
  8.         {
  9.         }
  10.         /// <summary>
  11.         /// 获取Redis写节点
  12.         /// </summary>
  13.         /// <returns></returns>
  14.         public static RedisClient GetInstance()
  15.         {
  16.             // 如果连接池的实例不存在则创建,否则直接返回
  17.             if (poolrl == null)
  18.             {
  19.                 lock (obj)
  20.                 {
  21.                     if (poolrl == null)
  22.                     {
  23.                         CreatePoolManager();
  24.                     }
  25.                 }
  26.             }
  27.             return poolrl.GetClient() as RedisClient;
  28.         }
  29.         /// <summary>
  30.         /// 获取Redis读节点
  31.         /// </summary>
  32.         /// <returns></returns>
  33.         public static RedisClient GetReadOnlyInstance()
  34.         {
  35.             if (poolrl == null)
  36.             {
  37.                 lock (obj)
  38.                 {
  39.                     if (poolrl == null)
  40.                     {
  41.                         CreatePoolManager();
  42.                     }
  43.                 }
  44.             }
  45.             return poolrl.GetReadOnlyClient() as RedisClient;
  46.         }
  47.         private static void CreatePoolManager()
  48.         {
  49.             //----------------------发布的时候用外网---------------------------
  50.             //----------------------测试的时候用本地---------------------------
  51.             //写节点(主节点)
  52.             List<string> writes = new List<string>();
  53.             writes.Add("127.0.0.1:6379");
  54.             //读节点
  55.             List<string> reads = new List<string>();
  56.             reads.Add("127.0.0.1:6379");
  57.             //配置连接池和读写分类
  58.             poolrl = new PooledRedisClientManager(writes, reads, new RedisClientManagerConfig()
  59.             {
  60.                 MaxReadPoolSize = 50//读节点个数
  61.                 MaxWritePoolSize = 50,//写节点个数
  62.             });
  63.         }
  64.    }



欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

NPOI操作excel 2007/2010版本

HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xlsXSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx先...

Redis基础安装操作-windows版

一、下载 redis官方没有提供windows版本,需要从微软的git下载releases版二、安装,启动1.解压出来 启动服务 可能会双击会...

StackExchange.Redis操作Redis(net core支持)

官方git开源地址https://github.com/StackExchange/StackExchange.Redis官方文档在docs里边都是官方的文档通过nuget命令下...

Service-stack.Redis操作Redis 并发相关问题

1:不要循环去创建对象,循环去访问redis的时候要特别注意,应该传一个集合进去处理,而不是循环去处理2:要注意释放对象,使...

拓展js通用方法来对应c操作

有很多时候,js不能像c#一样有那样多的方法操作,但是我们可以自己写一些方法,让他拥有:比如最常见的一些:注意:js里的...

ServiceStack.Redis操作Redis设置数据过期问题

添加一个key并设置过期时间(例如这个设置2分10秒后过期)TimeSpants=newTimeSpan(0,2,10); byte[]intbit=BitConverter.GetB...

C ServiceStack.Redis操作Redis_基本键值对

Redis的基本数据类型:基本的键值对List集合Set集合有序Set集合Hash表ServiceStack.Redis操作基本键值对:staticvoidMain(s...

C ServiceStack.Redis操作Redis_List

redis的内部实现是使用的链表实现的ServiceStack.Redis操作Redis List的增删改查staticvoidMain(string[]args) { //链接r...

net core中使用url编码与解码操作

net core中暂时还没有以前asp.net与mvc中的server对象。获取url的编码与解码操作不能使用以前的server对象来获取。使用的是...

渣渣学安卓之时间选择器和文本框操作

一、时间选择器有时候我们做页面时需要时间选择器,先上效果图看了下android studio,没有这个样式的控件,找了下度娘发现...

C ADO.NET基本添加操作

C# ADO.NET基本添加操作publicboolRegister(UserInfoui) { using(SqlConnectionconn=newSqlConnection(&quot;server=.;ui...

学点PS基础操作

污点修复画笔工具去掉图片文字找到污点修复画笔工具,然后在想要去掉的地方涂抹就可以了,非常的简单图片裁剪工具裁剪图片大小

电脑小技巧(加快工作区电脑操作)

想怎么用cmd命令来打开应用啊第一步:在任意磁盘新建文件夹 例如:我在user文件夹下新建了快捷键文件夹第二步:把所需要的应用...

sqlserver常用操作

创建临时表createtable#表名() select字段1,字段2....字段ninto#表名from表[where1=1]删除临时表ifOBJECT_ID(&#39;tempdb....

layer弹窗+ef引入独立页面进行操作

使用layer弹窗进行操作的时候我们可以使用type=2,来把一个独立的页面指向content内容例如我们有一个表格,点击添加后,我...