广州网站建设开发公司建设银行深圳天健世纪支行网站
web/
2025/9/29 8:37:49/
文章来源:
广州网站建设开发公司,建设银行深圳天健世纪支行网站,重庆是哪个省份的,深圳商城网站建设公司BeetleX针对redis访问封了全async/await操作模式#xff0c;通过它可以更高效地访问redis服务。BeetleX.Redis提供读写分离和多机故意写入处理#xff0c;同时安全的TLS访问机制#xff0c;在使用功能上组件支持绝大部分基础指令#xff0c;并提供json#xff0c;protobuf… BeetleX针对redis访问封了全async/await操作模式通过它可以更高效地访问redis服务。BeetleX.Redis提供读写分离和多机故意写入处理同时安全的TLS访问机制在使用功能上组件支持绝大部分基础指令并提供jsonprotobuf和messagepack序列化的支持组件默认基于连接池操作高并发处理使更简便。支持指令 组件实现的基础指令虽然不是全部但相关基础功能的都有实现包括有序列订阅和消息队列等等以下是实现的指令列表。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| SCAN| 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| PFCount| PFAdd|
PFMerge| INFO| XACK| XADD| XDEL| XGROUP| XLEN| XRANGE| XREAD|
XREADGROUP| XREVRANGE|
涉及到常用功能一百多个指令都有实现不过在集群方面组件并没有支持主要考虑到这种方式都可以通过服务拆分治理的方式可以解决。如果你也想参与这个组件的开发可以访问 https://github.com/IKende/BeetleX.Redis使用 在项目中通过Nuget引用BeetleX.Redis组件最新版本是v1.0.1。引用组件后就可以通过RedisDB来操作redis服务。RedisDB DB new RedisDB(0);
创建完RedisDB后需要添加对应的redis写入服务地址 db.Host.AddWriteHost(127.0.0.1);
以上是针对当前RedisDB添加一个服务地址实际上可以通过AddWriteHost添加多个当存在多个WriteHost的情况按顺序写入第一个其他WriteHost则用于故障备份需要。如果需要读写分离可以通过AddReadHost添加读的服务地址.db.Host.AddReadHost(127.0.0.1, 6378);
为了可以对应故障处理同样支持添加多个。序列化格式 RedisDB默认是以string的方式来处理内容一般情况不会这样用毕竟在应用中都涉及到对象处理所以在使用前最好配置一下DataFormater类型。RedisDB.DataFormater new JsonFormater();
以上是配置一个Json的序列化处理器组件还提供ProtobufFormater和MessagePackFormater;相对于json来说这两种序列化可以得到更高效的序列化处理性能和更低的内存占用空间。密码/TLS 为了安全考虑一般redis服务都会添加密码有些情况为了保障通讯的安全还可能基于TLS的方式访问。var host RedisDB.Host.AddWriteHost(127.0.0.1, 6379, true);
host.Password 123456;
以上代码是在添加服务地址的时候指定为TLS访问通过Password属性设置服务访问密码。操作 当RedisDB定义好后就可以进行操作RedisDB的所有操作都是基于async/await进行SET/GETvar result await DB.Set(test, henryfan1);
var value await DB.Getstring(test);
MSETvar result await DB.MSet((key1, hello), (key2, world));
var get await DB.Getstring(key1);
get await DB.Getstring(key2);
快速访问 如果不想定义RedisDB对象组件提供了一个默认的DefaultRedis对象来简单化操作。 DefaultRedis.Instance.DataFormater new JsonFormater();DefaultRedis.Instance.Host.AddWriteHost(127.0.0.1);await DefaultRedis.Set(emp1, GetEmployee(1));await DefaultRedis.Set(order1, GetOrder(1));await DefaultRedis.Set(customer1, GetCustomer(1));await DefaultRedis.GetEmployee, Order, Customer(emp1, order1, customer1);
bytes操作 有些情况需求直接读写redis的bytes数据组件支持这样操作。var data Encoding.UTF8.GetBytes(henryfanmsn.com);
await DB.Set(bytes, new ArraySegmentbyte(data));
var result await DB.GetArraySegmentbyte(bytes);
Assert.Equalstring(Encoding.UTF8.GetString(result.Array, 0, result.Count), henryfanmsn.com);
创建订阅var subscribe DefaultRedis.Subscribe();
subscribe.RegisterEmployee(employees, e
{Console.WriteLine($Receive employee {e.FirstName} {e.LastName});
});
subscribe.Listen();
创建列表var list DB.CreateListEmployee(employees);
await list.RPush(GetEmployee(1));
await list.RPush(GetEmployee(2));
await list.Insert(true, GetEmployee(2), GetEmployee(3));
await list.Range(0, -1);
键值表var table DB.CreateHashTable(myhash);
await table.MSet((field1, hello), (field2, world));
var values await table.Getstring, string, string(field1, field2, nofield);
序列string member ken;
var sequeue DB.CreateSequence(seq2);
var count await sequeue.ZAdd((4.14, member));
var value await sequeue.ZScore(member);
await sequeue.ZIncrby(5, member);
value await sequeue.ZScore(member);
队列RedisStreamEmployee stream DB.GetStreamEmployee(employees_stream);
var id await stream.Add(DataHelper.Defalut.Employees[0]);
id await stream.Add(DataHelper.Defalut.Employees[1]);
id await stream.Add(DataHelper.Defalut.Employees[2]);
var len await stream.Len();var group await stream.GetGroup(g1);
var items await group.Read(henry, 0);
foreach (var item in items)await item.Ack();
items await group.Read(henry);
【BeetleX通讯框架代码详解】
【WebApi示例扩展】
BeetleX开源跨平台通讯框架(支持TLS)轻松实现高性能:tcp、http、websocket、redis、rpc和网关等服务应用https://beetlex.io如果你想了解某方面的知识或文章可以把想法发送到henryfanmsn.com|adminbeetlex.io
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83802.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!