• ServiceStack.Redisstring操作


     

    string操作

    增查批量

    设置过期时间

    获取旧值追加新值

    自增自减

    add与set区别

    Stackexchange.Redis和Servicestack.Redis性能对比(源码)

     https://www.jianshu.com/p/66b7cf28e322

    添加Nuget包

    using (RedisClient client = new RedisClient("127.0.0.1", 6379))
                {
                    //删除当前数据库中的所有Key  默认删除的是select 0
                    client.FlushDb();
    
    
    


    //删除所有数据库中的key client.FlushAll(); //统计网站访问数量、当前在线人数、微博数、粉丝数等,全局递增ID等 #region 设置key的value //client.Set<string>("name", "朝夕教育"); //client.Set<string>("name", "朝夕教育2"); //Console.WriteLine("错误输出"); //Console.WriteLine(client.GetValue("name")); //Console.WriteLine("正确输出"); //Console.WriteLine(JsonConvert.DeserializeObject<string>(client.GetValue("name"))); //Console.WriteLine(client.Get<string>("name"));

    相同的key 会覆盖旧值



    #endregion #region 设置多个key的value //批量的写入redis key client.SetAll(new Dictionary<string, string> { { "id", "001" }, { "name", "clay" } }); //批量读取内存中多个key的结果 如果我们获取的key不存在,程序会返回一个空的字符串 var getall = client.GetAll<string>(new string[] { "id", "name", "number" }); foreach (var item in getall) { Console.WriteLine(item); }


    #endregion
    
                    #region  设置key的value并设置过期时间
                    //client.Set<string>("name", "朝夕教育", TimeSpan.FromSeconds(1));
                    //Task.Delay(1 * 1000).Wait();
                    //Console.WriteLine(client.Get<string>("name"));
                    #endregion
    
                    #region 设置key的value并设置过期时间
    
                    //client.Set<string>("name", "朝夕教育", DateTime.Now.AddSeconds(1));
                    ////client.Set<string>("name", "朝夕教育", DateTime.Now.AddMonths(15));
                    //Console.WriteLine("刚写进去的结果");
                    //Console.WriteLine(client.Get<string>("name"));
                    //Task.Delay(1 * 1000).Wait();
                    //Console.WriteLine("1秒钟之后的结果");
                    //Console.WriteLine(client.Get<string>("name"));
    
                    //client.Set<string>("class", "优秀班级", TimeSpan.FromSeconds(10));
                    //Task.Delay(1 * 1000).Wait();
                    //Console.WriteLine(client.Get<string>("class"));
                    #endregion
    
                    #region 在原有key的value值之后追加value
                    //client.AppendToValue("name", "I");
                    //client.AppendToValue("name", " ");
                    //client.AppendToValue("name", "LOVE YOU");
                    //Console.WriteLine(client.Get<string>("name"));
                    #endregion
    
                    #region 获取旧值赋上新值
                    //client.Set("name", "朝夕教育");
                    ////获取当前key的之前的值,然后把新的结果替换进入
                    //var value = client.GetAndSetValue("name", "clay");
                    //Console.WriteLine("原先的值" + value);
                    //Console.WriteLine("新值" + client.GetValue("name"));
    
                    #endregion
    
                    #region 自增1,返回自增后的值
                    //给key为sid的键自增1 ,返回了自增之后的结果
                    //Console.WriteLine(client.Incr("sid"));
                    //Console.WriteLine(client.Incr("sid"));
                    //Console.WriteLine(client.Incr("sid"));
                    //Console.WriteLine("华丽丽的结束");
    
                    //Console.WriteLine(client.GetValue("sid"));
                    //每次通过传递的count累计,count就是累加的值
                    //client.IncrBy("sid", 2);
                    //Console.WriteLine(client.Get<string>("sid"));
                    //client.IncrBy("sid", 100);
                    //Console.WriteLine("最后的结果***" + client.GetValue("sid"));
                    #endregion
    
                    #region 自减1,返回自减后的值
                    //Console.WriteLine(client.Decr("sid"));
                    //Console.WriteLine(client.Decr("sid"));
                    //Console.WriteLine(client.Decr("sid"));
                    //Console.WriteLine("最后的结果"+client.GetValue("sid"));
                    ////通过传入的count去做减肥 之前的结果-count
                    //client.DecrBy("sid", 2);
                    //Console.WriteLine("最终的结果"+client.GetValue("sid"));  
                    #endregion
    
                    #region add 和set 的区别?
                    // 当使用add 方法去操作redis的时候,如果key存在的话,则不会再次进行操作 返回false 如果操作成功返回true
                    //Console.WriteLine(client.Add("name", "clay"));
                    ////用add的时候帮你去判断如果有则不进行操作,如果没有则写,它只能写新值,不能修改
                    //Console.WriteLine(client.Add("name", "你很好clay"));
                    //Console.WriteLine(client.Get<string>("name"));
    
    
                    //使用set去操作 redis的时候,如果key不存在则写入当前值,并且返回true,通过存在,则对之前的值进行了一个替换 返回操作的结果
                    //Console.WriteLine(client.Set("name", "clay"));
                    //Console.WriteLine(client.Set("name", "你很好clay"));
                    //Console.WriteLine(client.Get<string>("name"));
                    #endregion
    
    
    
                }
  • 相关阅读:
    正则表达式---用户验证
    最短路 Dijkstra
    最短路 Dijkstra+堆优化
    LCIS(最长公共上升子序列)
    最小生成树 Kruskal
    网络流 最大流
    网络流 最小费用最大流
    树链剖分
    树状数组
    双重Hash
  • 原文地址:https://www.cnblogs.com/cxxtreasure/p/15762680.html
Copyright © 2020-2023  润新知