c 使用csredis操作redis的示例

2022-09-28 06:48:07 字數 2431 閱讀 2909

現在流行的redis連線客戶端有stackexchange.redis和servicestack.redis,為什麼選擇csredis而不是這兩個?

環境:

csredis 原始碼位址:

1.在.net專案中引入csrediscore

包安裝命令:

install-package csrediscore -version 3.6.5

2.使用:

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace consoleapp1

"); redis.set("birth", datetime.now);

var birth = redis.get("birth");

console.writeline($"birth=");

redis.set("info", new );

var info = redis.get("info");

console.writeline($"info=");

console.writeline("ok");

console.readline();}}}

3.高階玩法:發布訂閱

//普通訂閱

rds.subscribe(

("chan1", msg => console.writeline(msg.body)),

("chan2", msg => cons程式設計客棧ole.writeline(msg.body)));

//模式訂閱(萬用字元)

rds.psubscribe(new , msg => : : chan:");

});//模式訂閱已經解決的難題:

//1、分割槽的節點匹配規則,導致萬用字元最大可能匹配全部節點,所以全部節點都要訂閱

//2、本組 "test*", "*test001", "test*002" 訂閱全部節點時,需要解決同一條訊息不可執行多次

//發布

rds.publish("chan1", "123123123");

//無論是分割槽或普通模式,rds.publish 都可以正常通訊

4.高階玩法:快取殼

//不加快取的時候,要從資料庫查詢

var t1 = test.select.whereid(1).toone();

//一般的快取**,如不封裝還挺繁瑣的

var cachevalue = rds.get("test1");

if (!string.isnullorempty(cachevalue)) catch

}var t1 = test.select.whereid(1).toone();

rds.set("test1", jsonconvert.serializeobject(t1), 10); //快取10秒

//使用快取殼效果同上,以下示例使用 string 和 hash 快取資料

var t1 = rds.cacheshell("test1", 10, () => test.select.whereid(1).toone());

var t2 = rds.cacheshell("test", "1", 10, () => test.select.whereid(1).toone());

var t3 = rds.cacheshell("test", new , 10, 程式設計客棧notcachefields => new );

5.高階玩法:管道

使用管道模式,打包多條命令一起執行,從而提高效能。

v程式設計客棧ar ret1 = rds.startpipe().set("a", "1").get("a").endpipe();

var ret2 = rds.startpipe(p => p.set("a", "1").get("a"));

var ret3 = rds.startpipe().get("b").get("a").get("a").endpipe();

//與 rds.mget("b", "a", "a") 效能相比,經測試差之毫釐

6.高階玩法:多資料庫

var connectionstring = "127.0.0.1:6379,password=123,poolsize=10,ssl=false,writebuffer=10240,prefix=key前輟";

var redis = new csredisclient[14]; //定義成單例

for (var a = 0; a< redis.length; a+ redis[a] = new csredisclient(connectionstring + "; defualtdatabase=" + a);

//訪問資料庫1的資料

redis[1].get("test1");

7.效能比拼

Django session相關操作 redis

設定session11 request.session username chen 12 設定過期時間13 request.session.set expiry 30 14 返回json字串 15return httpresponse 首頁 161718 deflogin request 19if ...

spring session使用配置redis

1.新增依賴 dependency groupid org.springframework.session groupid artifactid spring session data redis artifactid version 1.2.0.release version dependency...

Python操作docker裡面的redis

使用操作命令借助subprocess模組進行操作 encoding utf 8 import subprocess defcmd command subp subprocess.popen command,shell true stdout subprocess.pipe,stderr subpro...