zoukankan      html  css  js  c++  java
  • 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
    
    
    
                }
  • 相关阅读:
    【React Native】某个页面禁用物理返回键
    【React Native】DeviceEventEmitter监听通知及带参数传值
    转载【React Native代码】手写验证码倒计时组件
    【React Native】 中设置 APP 名称、应用图标、为安卓添加启动图
    【React Native错误集】* What went wrong: Execution failed for task ':app:installDebug'.
    【React Native错误集】Import fails with "Failed to execute 'ImportScripts' on 'WorkerGlobalScope'"
    【React Native错误集】Android error “Could not get BatchedBridge, make sure your bundle is packaged properly” on start of app
    「React Native笔记」在React的 setState 中操作数组和对象的多种方法(合集)
    【React Native】Error: Attribute application@allowBackup value=(false) from AndroidManifest.xml
    坚果云如何使用二次验证码/谷歌身份验证器/两步验证/虚拟MFA?
  • 原文地址:https://www.cnblogs.com/cxxtreasure/p/15762680.html
Copyright © 2011-2022 走看看