Beetlex之redis驱动

BeetleX.Redis是一款基于BeetleX扩展的高性能Redis操作库,支持全异步操作模式、SSL、读写分离及故障切换。默认提供json、protobuf和messagepack数据格式支持,涵盖广泛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");
  //开启SSL
  Redis.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));
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值