1.安裝Redis
我是在Windows上安裝redis的,Redis官網我只看到linux版本的,得使用別人提供的windows版本
菜鳥教程提供的redis下載地址:https://github.com/MSOpenTech/redis/releases
新建一個文件夾D:\redis解壓進去,並添加環境變量
cmd運行以下命令打開redis服務
redis-server.exe redis.windows.conf
再打開一個cmd,進行緩存操作
連接服務
redis-cli.exe -h 127.0.0.1 -p 6379
set
set city Shanghai
get
get city
到這了已經對redis有了最初步的了解
常用命令:
獲取所有key:keys *
插入隊列:publish 隊列名 value
獲取隊列的數據:lrange 隊列名 0 -1 (從第0條開始,到-1表示最后一條)
2.使用c#連接redis
新建一個控制台項目
添加nuget包:ServiceStack.Redis(有很多包,自己看着下),我剛開始下載以下版本
出現這四個dll就沒錯
跑一下
class Program { static RedisClient redisClient = new RedisClient("127.0.0.1", 6379);//redis服務IP和端口 static void Main(string[] args) { Console.WriteLine(redisClient.Get<string>("city")); Console.ReadKey(); } }
后面發現,網上使用的最多的包是 StackExchange.Redis ,就換上這個了,展示一下這個包的操作
static ConnectionMultiplexer redisClient = ConnectionMultiplexer.Connect("localhost"); static void Main(string[] args) { IDatabase db = redisClient.GetDatabase(); // Set db.StringSet("city", "汕尾"); // Get db.StringGet("city"); int age = (int)db.StringGet("age"); // 刪除 db.KeyDelete("city"); // 監聽消息隊列messages ISubscriber sub = redisClient.GetSubscriber(); sub.Subscribe("messages", (channel, message) => { Console.WriteLine((string)message); }); // 進隊 for (int i = 1; i < 10; i++) { Thread.Sleep(1000); sub.Publish("messages", "hello" + i); } Console.ReadLine(); }
接下來我們寫一下api返回的json緩存
using Newtonsoft.Json;
接口例子:
[HttpGet("{id}")] public ResultModel<DataTable> Get(int id) { if (db.KeyExists($"user_id_{id}"))// 有緩存獲取緩存 return JsonConvert.DeserializeObject<ResultModel<DataTable>>(db.StringGet($"user_id_{id}"));// 反序列化 string sql = $@" SELECT * from tb_user s where s.ID=@id "; var param = new List<DbParam>(); param.Add(new DbParam("id", id,DbType.Int32)); var dtRes = _dBHelper.Query(sql,param); if (dtRes.Success == false) return new ResultModel<DataTable>().SetError(dtRes.Msg); db.StringSet($"user_id_{id}", JsonConvert.SerializeObject(dtRes).ToString()); // 序列化成字符串 return dtRes; }