日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Beetlex之redis驱动

發布時間:2023/12/4 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Beetlex之redis驱动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

BeetleX.Redis

BeetleX.Redis是基于BeetleX擴展的Redis操作庫,全異步操作模式和基于字符緩存策略優化可以提供出色的Redis訪問性能;支持SSL,支持讀寫分離和故障切換;默認多數據格式支持,默認提供json,protobuf和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?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驱动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。