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");
  //开启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));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值