SkillAgentSearch skills...

BeetleX.Redis

A high-performance async/non-blocking redis client components for dotnet core,default data formater json protobuf and messagepack,support ssl

Install / Use

/learn @beetlex-io/BeetleX.Redis
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

BeetleX.Redis

A high-performance async/non-blocking redis client components for dotnet core,default support json and protobuf data format ,support ssl

Support commands

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| GEOADD| GEOPOS| GEODIST| GEORADIUS| GEORADIUSBYMEMBER| SADD| SCARD| SDIFF| SDIFFSTORE| SINTER| SINTERSTORE| SISMEMBER| SMEMBER| SMOVE| SPOP| SRANDMEMBER| SREM| SSCAN| SUNION| SUNIONSTORE|

nuget

https://www.nuget.org/packages/BeetleX.Redis/

Default instance setting

DefaultRedis.Instance.DataFormater = new JsonFormater();
DefaultRedis.Instance.Host.AddWriteHost("localhost");
//ssl
DefaultRedis.Instance.Host.AddWriteHost("localhost",6378,true);
//password 
DefaultRedis.Instance.Host.AddWriteHost("localhost").Password="123456"

Create db

RedisDB DB = new RedisDB(1);
DB.DataFormater = new JsonFormater();
DB.Host.AddWriteHost("localhost");
  //SSL
DB.Host.AddWriteHost("localhost",6378,true);
  //password 
DB.Host.AddWriteHost("localhost").Password="123456"

SET/SET

await DefaultRedis.Get<Employee>("nonexisting");
await DefaultRedis.Set("emp3", GetEmployee(3));
await DefaultRedis.Get<Employee>("emp3");

MSET/MGET

await DefaultRedis.Set(("field1", GetEmployee(1)), ("field2", GetEmployee(2)));
await DefaultRedis.Get<Employee, Order, Customer>("emp1", "order1", "customer1");

List

var list = DefaultRedis.CreateList<Employee>("employees");
await list.Push(GetEmployee(1));
await list.Insert(true, GetEmployee(2), GetEmployee(3));
await list.Range(0, -1);

Sequence

var sequeue = DB.CreateSequence("seq2");
await sequeue.ZAdd((100, "A1"), (200, "A2"), (300, "A3"), (400, "A4"));
var items = await sequeue.ZRange(0, -1, true);

Hash

var table = DefaultRedis.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();

Stream

 RedisStream<Employee> stream = DB.GetStream<Employee>("employees_stream");
 await stream.Add(DataHelper.Defalut.Employees[0]);
 await stream.Len();
 await stream.Range();
 await stream.RevRange();
 await stream.Read(0, null, "0-0");
 var group = await stream.GetGroup("g1");
 await group.Read("henry");
 var items = await group.Read("henry","0");
 foreach (var item in items)
    await item.Ack();
    
 while (true)
 {
    items = await group.ReadWait(name);
    foreach (var item in items)
    {
        Console.WriteLine($"1-{name}|{item.ID} {item.Data.FirstName}\t{item.Data.LastName}");
    }
 }

Subscribe

var subscribe = DefaultRedis.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));

New db client

RedisDB DB = new RedisDB();
DB.Host.AddWriteHost("192.168.2.19");
// set password
DB.Host.AddWriteHost("192.168.2.19").Password=123456;

Json db

RedisDB DB = new RedisDB(0, new JsonFormater());

Protobuf db

RedisDB DB = new RedisDB(0, new ProtobufFormater());

Basic operations

await DB.Decr("mykey")
await DB.Decrby("mykey", 5);
await DB.Del("mykey");
await DB.Dump("mykey");
await DB.Exists("mykey", "order");
await DB.Expire("mykey", 10);
await DB.Expireat("mykey", 1293840000);
await DB.Get<string>("mykey");
await DB.GetBit("mykey", 0);
await DB.GetRange("mykey", -3, -1);
await DB.GetSet<string>("mycounter", 0);
await DB.Incr("mykey");
await DB.Incrby("mykey", 10);
await DB.IncrbyFloat("mykey", 0.1f);
await DB.Keys("t??");
await DB.MGet<string, string>("key1", "key2");
await DB.MGet<string, string, string>("key1", "aaa", "key2");
await DB.MSet(("key1", "hello"),("key2", "world"));
await DB.MSetNX(("key1", "hello"),("key2", "there"));
await DB.Move("one", 9);
await DB.PSetEX("mykey", 1000, "hello");
await DB.Persist("mykey");
await DB.Pexpire("mykey", 1500);
await DB.Pexpireat("mykey", 1555555555005);
await DB.Ping();
await DB.PTtl("mykey");
await DB.Randomkey();
await DB.Rename("mykey", "myotherkey");
await DB.Renamenx("mykey", "myotherkey");
await DB.Set("test", "henryfan");
await DB.SetBit("mykey", 7, false);
await DB.SetEX("mykey", 10
View on GitHub
GitHub Stars191
CategoryCustomer
Updated7mo ago
Forks36

Languages

C#

Security Score

92/100

Audited on Aug 19, 2025

No findings