当前位置:网站首页>.NET操作Redis String字符串
.NET操作Redis String字符串
2022-07-26 10:29:00 【矿工学编程】
一、String字符串概述
string类型在redis中是最常见的类型,其数据形式为就是 key value ,value存储最大数据量为512M,可以存放json数据,图像数据等等。
二、使用场景
1.session 利用redis做session共享内存。
2.自增和自减法 -- 做一些网站的请求数量,或者论坛的点赞数,评论数。 可以用redis来实现,完成之后做数据刷盘,把这些统计数据放到我们持久化数据库中。
三、.NET 操作
本人采用的是ServiceStack.Redis c#客户端,功能十分强大,但是收费。每小时请求达到6000时,会进行限制。如果想用其他的Redis C#客户端库,可以在Redis官网中找到别的客户端库,其中BeetleX.Redis和NewLife.Redis分别是水泥佬团队和石头佬团队退开发的,大家可以试一试。
1、设置key的value,基础操作
client.Set<string>("onekey", "第一个字符串操作");//写入String
var val = client.Get<string>("onekey");//根据key获取value
Console.WriteLine(val);2、设置多个key value键值对
//批量的写入redis key
client.SetAll(new Dictionary<string, string> { { "id", "1" }, { "name", "kgxk" } });
//批量读取内存中多个key的结果 如果我们获取的key不存在,程序会返回一个空的字符串
var getall = client.GetAll<string>(new string[] { "id", "name", "number" });
foreach (var item in getall)
{
Console.WriteLine(item);
}3、设置key的value并设置过期时间
client.Set<string>("name", "kgxk", TimeSpan.FromSeconds(1));
Task.Delay(1 * 1000).Wait();
//过期时间可以是具体时间
//client.Set<string>("name", "kgxk", DateTime.Now.AddSeconds(1));
//client.Set<string>("name", "kgxk", DateTime.Now.AddMonths(15));
Console.WriteLine(client.Get<string>("name"));
4、在原有key的value值之后追加value
client.AppendToValue("name", "K");
client.AppendToValue("name", "G");
client.AppendToValue("name", "XK");
Console.WriteLine(client.Get<string>("name"));5、获取旧值赋上新值
client.Set("name", "kgxk");
//获取当前key的之前的值,然后把新的结果替换进入
var value = client.GetAndSetValue("name", "矿工小坑");
Console.WriteLine("原先的值" + value);
Console.WriteLine("新值" + client.GetValue("name"));6、自增,返回自增后的值
//给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"));7、自减,返回自减后的值
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"));8、add 和set
- add 只能做新增,如果已经有了key则返回失败
- set 如果有key就替换,如果没有就写入
- 当使用add 方法去操作redis的时候,如果key存在的话,则不会再次进行操作 返回false 如果操作成功返回true
Console.WriteLine(client.Add("name", "kgxk"));
//用add的时候帮你去判断如果有则不进行操作,如果没有则写,它只能写新值,不能修改
Console.WriteLine(client.Add("name", "你很好kgxk"));
Console.WriteLine(client.Get<string>("name")); //使用set去操作 redis的时候,如果key不存在则写入当前值,并且返回true,通过存在,则对之前的值进行了一个替换 返回操作的结果
Console.WriteLine(client.Set("name", "kgxk"));
Console.WriteLine(client.Set("name", "你很好kgxk"));
Console.WriteLine(client.Get<string>("name"));
边栏推荐
猜你喜欢
随机推荐
PTA class a 1001
Google与Pixar开发Draco支持USD格式 加速3D对象传输&lt;转发&gt;
Review of database -- 1. Overview
事务的传播性propagation
Closure of go (cumulative sum)
移动端H5开发常用技巧总结
数据分析入门 | kaggle泰坦尼克任务(一)—>数据加载和初步观察
Unit test, what is unit test and why is it so difficult to write a single test
The reason why go language is particularly slow to develop run and build commands
canvas上传图片base64-有裁剪功能-Jcrop.js
MLX90640 红外热成像仪测温传感器模块开发笔记(六)
链式方法调用的事务问题剖析
Perfect / buffer motion framework in sentence parsing JS (for beginners)
Introduction to data analysis | kaggle Titanic mission
Learning about opencv (3)
畅听,网文流量竞争的下一站?
modelsim 安装教程(应用未安装)
404页面和路由钩子
Mlx90640 infrared thermal imager temperature sensor module development notes (6)
Learning about tensorflow (II)


![[Halcon vision] image filtering](/img/7a/b95f8977f02fab644ef9fb205424e7.png)




![[Halcon vision] threshold segmentation](/img/1c/e2463a796f99804a55680b69e714a6.png)
