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));

Beetlex之redis驱动相关推荐

  1. 使用BeetleX访问redis服务

    BeetleX针对redis访问封了全async/await操作模式,通过它可以更高效地访问redis服务.BeetleX.Redis提供读写分离和多机故意写入处理,同时安全的TLS访问机制,在使用功 ...

  2. .net core redis 驱动推荐,为什么不使用 StackExchange.Redis

    前言 本人从事 .netcore 转型已两年有余,对 .net core 颇有好感,这一切得益于优秀的语法.框架设计. 2006年开始使用 .net 2.0,从 asp.net 到 winform 到 ...

  3. 用.netcore写一个简单redis驱动,调试windows版本的redis

    1. 下载windows版本的redis 2.开发环境vs2017  新建一个 .net core控制台. private static Socket socket = new Socket(Addr ...

  4. java redis驱动包下载

    下载地址:http://repo1.maven.org/maven2/redis/clients/jedis/2.9.0/ 下载说明(见下图):

  5. Laravel 的事件广播系统(Redis驱动)

    需求 给当前在线浏览用户推送优惠券,或者刺激用户消费的话术 今天我们主要是借助Laravel Broadcasting你可以使用上时下很热的Websocket技术 解决方案 1 . 基于laravel ...

  6. redis java驱动_Redis学习笔记之二 :在Java项目中使用Redis

    成功配置redis之后,便来学习使用redis.首先了解下redis的数据类型. Redis的数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set( ...

  7. python扩展包rediscluster集群_令人抓狂的redis和rediscluster Python驱动包的安装

    本文环境:centos 7,Python3编译安装成功,包括pip3,然后需要安装redis相关的Python3驱动包,本的redis指redis包而非redis数据库,rediscluster类似. ...

  8. Laravel/Lumen 使用 Redis队列

    一.概述 在Web开发中,我们经常会遇到需要批量处理任务的场景,比如群发邮件.秒杀资格获取等,我们将这些耗时或者高并发的操作放到队列中异步执行可以有效缓解系统压力.提高系统响应速度和负载能力. 二.配 ...

  9. tp5实现Redis的简单使用

    方法1: Controller <?php namespace app\index\controller;use think\Controller; use think\session\driv ...

最新文章

  1. 【AI-CPS】【工业互联网】从观望到行动:全球工业物联网市场生态全景观察
  2. Ubuntu快速重装软件的技巧
  3. 使用String 的 intern做锁提高并发能力
  4. 升级鸿蒙系统的手机名单,倒计时2天!首批鸿蒙OS适配名单确定,你的手机在列吗?...
  5. git学习相关的博客地址
  6. apache php debug,fedora linux apache/php下安装配置xdebug
  7. Mounting A Windows Share On AIX Using CIFS
  8. MVC设计之MVC设计模式(介绍)
  9. Go语言:数组练习—冒泡排序
  10. HTML5 常见问题 font标签设置字体未生效
  11. liunx服务器日志在什么位置,系统日志查看位置(Windows+Linux)
  12. Java实现简单的售货机程序2
  13. 从阿里云购买、域名购买、SSL免费购买到SSL集成开发(网络编程安全三)
  14. Jmeter性能测试之系统监控
  15. 快乐想象识字认字注册码发放!
  16. 小红书品牌营销白皮书(2021半年报)
  17. 开发基础 - Linux下安装SVN服务端
  18. H3C交换机常用命令汇总
  19. 移动硬盘linux挂载格式化写保护,移动硬盘无法格式化?提示这张磁盘有写保护的解决方法...
  20. 软件测试外包到蚂蚁金服,2019蚂蚁金服面试经验(服务运营岗,测试开发工程师等)...

热门文章

  1. 第二节 安装CentOS
  2. win7 64位下如何安装配置mysql-5.7.4-m14-winx64(安装记录)
  3. workaround for %33 texture memory bug
  4. css两栏式布局示例
  5. windows10访客_如何在Windows 10中创建访客帐户
  6. 火狐 新增标签 一直加载_在Firefox的新标签页中加载最后标签页的URL
  7. 免费的数字图书馆_不仅是书籍:您当地图书馆可能提供的所有免费数字资料
  8. [C++]VS2005(VC8) 使用 Boost
  9. command not found Operation not permitted
  10. [Windows]_[0基础]_[Release程序的崩溃报告minidump解决方式]