.NETCore 简单且高级的库 csredis v3.0.0
前言
.NETCore 从1.0发布历经坎坷,一开始各种库缺失到现在的部分完善,走到今天实属不易。
比如 redis-cli SDK 简直是坑出不穷。
过去 .net 最有名望的 ServiceStack.Redis 早已沦为商业用途,在 .NETCore 中使用只能充值;
后来居上的 StackExchange.Redis 虽然能用,但线上各种 Timeout 错误把人坑到没脾气,两年多两年多两年多都不解决,最近 StackExchange.Redis 2.0 已经解决了timeout的问题。
csredis v3.0.0 更新
1、所有方法名与redis-cli保持一持;
据了解,java/python/go/nodejs/php SDK 方法名基本都与 redis-cli 一致,反对二次命名的库
2、增加反序列对象获取,如:Get<byte[]>、HGet<byte[]>,所有获取方法都重载了,默认获取仍然是string;
3、SafeObjectPool 的引入使用;
使用
nuget Install-Package CSRedisCore
var rds = new CSRedis.CSRedisClient("127.0.0.1:6379,password=123,defaultDatabase=13,poolsize=50,ssl=false,writeBuffer=10240,prefix=key前辍");
rds.Set("test1", "123123", 60);
rds.Get("test1");//函数名与 redis-cli 的命令相同,rds 一定是单例单例单例
高级玩法:分区
现实多个服务节点共同分担存储,与官方的分区、集群、高可用方案不同。
例如:缓存数据达到500G,如果使用一台redis-server服务器光靠内存存储将非常吃力,使用硬盘又影响性能。
可以使用此功能自动管理N台redis-server服务器分担存储,每台服务器只需约 (500/N)G 内存,且每台服务器匀可以配置官方高可用架构。
var rds = new CSRedis.CSRedisClient(null, "127.0.0.1:6371,password=123,defaultDatabase=11,poolsize=10,ssl=false,writeBuffer=10240,prefix=key前辍", "127.0.0.1:6372,password=123,defaultDatabase=12,poolsize=11,ssl=false,writeBuffer=10240,prefix=key前辍", "127.0.0.1:6373,password=123,defaultDatabase=13,poolsize=12,ssl=false,writeBuffer=10240,prefix=key前辍", "127.0.0.1:6374,password=123,defaultDatabase=14,poolsize=13,ssl=false,writeBuffer=10240,prefix=key前辍");//实现思路:根据key.GetHashCode() % 节点总数量,确定连向的节点//也可以自定义规则(第一个参数设置)rds.MSet("key1", 1, "key2", 2, "key3", 3, "key4", 4);
rds.MGet("key1", "key2", "key3", "key4");
高级玩法:发布订阅
高级玩法:缓存壳
高级玩法:管道
使用管道模式,打包多条命令一起执行,从而提高性能。
高级玩法:多数据库
如果确定一定以及肯定非要有切换数据库的需求,请看以下代码:
性能比拼
结尾
依然是支持开源,感谢观看!
csredis 源码地址: https://github.com/2881099/csredis
原文地址:https://www.cnblogs.com/kellynic/p/9803314.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
.NETCore 简单且高级的库 csredis v3.0.0相关推荐
- VC皮肤库SkinCrafter v3 4 0 0使用
皮肤界面制作工具.可以自定义皮肤的组件库,它可以使你的程序具有换肤功能,拥有最独特的外观风格.支持所有的Win32平台,包括.NET.支持常用的编程语言,包括VC++,VB,Delphi,微软form ...
- VC皮肤库SkinCrafter.v3.4.0.0使用
皮肤界面制作工具.可以自定义皮肤的组件库,它可以使你的程序具有换肤功能,拥有最独特的外观风格.支持所有的Win32平台,包括.NET.支持常用的编程语言,包括VC++,VB,Delphi,微软form ...
- STM32之启动文件详细解析(V3.5.0)
启动文件么,就是进入main函数(其实可以在本文件中改成别的,即替换"_main"为你想改的"_XXXX"即可)之前干的一些事--- 来看看ARM在进入的&qu ...
- Coravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举!...
Coravel Coravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举! Coravel 帮助开发人员在不影响代码质量的情况下快速启动和 ...
- 编写XML作为配置文件的高级操作库
编写XML作为配置文件的高级操作库 yipsilon 原创 (参与分:293,专家分:180) 发表:2003-7-29 下午4:26 更新:2003-7-30 上午8:30 版本:1. ...
- python qt库,用于 Python 的高级 GUI 库(Qt 和 PyQt)(1)Unix系统 -电脑资料
Qt 工具箱是一个使用广泛的跨平台 GUI 工具箱,可用于 Windows .Linux.Mac OSX 和许多手持平台, Qt 工具箱是一个使用广泛的跨平台 GUI 工具箱,可用于Windows.L ...
- 【高级PDF库】上海道宁为您提供先进的.Net库,完全控制您的PDF创建工作流程,在WEB或任何服务器系统上创建动态PDF
Pdfium.Net SDK是 先进的.Net library 用于生成.操作和查看 可移植文档格式的文件 道宁专注于软件工具经销 为您带来高级PDF库 可完全控制您的PDF创建工作流程 提供高级c# ...
- Python 高级可视化库Plotly express使用教程
本文转载自:Python数据之道,欢迎扫码关注 Plotly Express 入门之路 Plotly Express 是一个新的高级 Python 可视化库:它是 Plotly.py 的高级封装,它为 ...
- FineUI(专业版)v3.2.0 发布(ASP.NET UI控件库)!
+2016-08-20 v3.2.0+表格增强.+表格列RenderField增加属性ClientHtmlEncode,用于在客户端进行HTML编码.-增加示例:单元格编辑->杂项->客户 ...
最新文章
- 使用UDP的简单C/S程序
- 老李推荐: 第8章4节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动AndroidDebugBridge 2...
- 左神算法:判断二叉树是否为平衡二叉树(树形dp套路,Java版)
- osg布告板技术(Billboard)
- 【今日CV 计算机视觉论文速览 第136期】Wed, 26 Jun 2019
- 代写php代码作业,代写phpmyadmin留学生作业、代做SQL语言作业、SQL程序设计作业调试、代做PHP script作业...
- 面向对象七大设计原则(转)
- 人工智能:一种现代方法 第四版 翻译序言
- 黑客动画吧-古墓探险之过关题解
- 1.1 爬虫入门介绍
- Android局域网工具,局域网内连接Android进行调试
- 今日芯声 | 每天徒步7公里找信号?印度不愧是开挂民族
- 【键盘】jQuery+CSS3模拟键盘事件(精)
- 【计算机网络】4-41假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”):
- 基于Tensorflow框架的BP神经网络回归小案例--预测跳高
- 华为计算机平台芯片,华为连发两款AI芯片,计算力远超谷歌及英伟达
- 【编程不良人】快速入门Spring学习笔记08---事务属性、Spring整合Structs2框架(SM)、Spring整合Mybatis+Struts2(SSM)、Spring注解、SSM注解式开发
- 考研英语 常见介词词组
- 牛视系统源码定制,抖音矩阵系统定制开发。come here
- 设计模式-UML类图
热门文章
- 浅谈javascript递归(白话版)
- bzoj3160(FFT+回文自动机)
- DCOS实践分享(6):基于DCOS的大数据应用分享
- 【自定义标签开发】01-标签简介和开发第一个标签
- 解析super-smack的smack文件
- Oracle 常用sql场景应用(未完待续......)
- hdu 2579 BFS
- Visual Studio 清单(manifest)导致的问题
- asp.net core自定义依赖注入容器,替换自带容器
- Fiddler抓包一键生成调用代码