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 }