c# 使用 Redis

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;
        }

 

 

 

 

  

  

转载于:https://www.cnblogs.com/wskxy/p/11038692.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值