当前位置: 首页 > news >正文

C# 菜鸟级别有关于redis的使用

        public IActionResult Index()
        {
            ConnectionMultiplexer _conn = ConnectionMultiplexer.Connect("127.0.0.1:6379");//初始化
            var database = _conn.GetDatabase(7);//指定连接的库 0
            RedisHelper redisHelper = new RedisHelper("4");


            bool r1 = redisHelper.SetValue("key", "Hello Word!");
            if (r1)
            {
                Console.WriteLine(redisHelper.GetValue("key"));
                //redisHelper.DeleteKey("key");
            }


            RedisCacheHelper.Add("zhong", "zhongzhongzhong", DateTime.Now.AddDays(1));

            string name = database.StringGet("name");
            string age = database.StringGet("age");
            var tran = database.CreateTransaction();//创建事物
            tran.AddCondition(Condition.StringEqual("name", name));//乐观锁
            tran.StringSetAsync("name", "海");
            tran.StringSetAsync("age", 25);
            database.StringSet("name", "Cang");//此时更改 name 值,提交事物的时候会失败。
            bool committed = tran.Execute();//提交事物,true成功,false回滚。

            string str3 = RedisCacheHelper.Get<string>("zhong");

            string str = RedisCacheHelper.Get<string>("nihao");

            string str1 = RedisCacheHelper.Get<string>("wei");


            database.StringSet("name", "苍");//设置StringSet(key, value)
            string str2 = database.StringGet("name");//结果:苍
            database.StringSet("name_two", str2, TimeSpan.FromSeconds(10));//设置时间,10s后过期。


            //创建对象
            Demo demo = new Demo()
            {
                Name = "苍",
                Age = 18,
                Height = 1.83
            };
            string demojson = JsonConvert.SerializeObject(demo);//序列化
            database.StringSet("model", demojson);

            string model = database.StringGet("model");
            demo = JsonConvert.DeserializeObject<Demo>(model);//反序列化


            double increment = 0;
            double decrement = 0;
            for (int i = 0; i < 3; i++)
            {
                increment = database.StringIncrement("StringIncrement", 2);//增量,每次+2
            }
            for (int i = 0; i < 3; i++)
            {
                decrement = database.StringDecrement("StringIncrement");//减量,每次-1
            }


            for (int i = 0; i < 10; i++)
            {
                database.ListRightPush("list", i);//从底部插入数据
            }
            for (int i = 10; i < 20; i++)
            {
                database.ListLeftPush("list", i);//从顶部插入数据
            }
            var length = database.ListLength("list");//长度 20

            var rightPop = database.ListRange("list");//从底部拿出数据var leftpop = database.ListLeftPop("list");//从顶部拿出数据var list = database.ListRange("list");


            string json = JsonConvert.SerializeObject(demo);//序列化
            database.HashSet("user", "cang", json);
            database.HashSet("user", "shan", json);
            database.HashSet("user", "yun", json);
            //获取Model
            string hashcang = database.HashGet("user", "cang");
            demo = JsonConvert.DeserializeObject<Demo>(hashcang);//反序列化

            //获取List
            RedisValue[] values = database.HashValues("user");//获取所有value
            IList<Demo> demolist = new List<Demo>();
            foreach (var item in values)
            {
                Demo hashmodel = JsonConvert.DeserializeObject<Demo>(item);
                demolist.Add(hashmodel);
            }

            ISubscriber sub = _conn.GetSubscriber();

            //订阅 Channel1 频道
            sub.Subscribe("Channel1", new Action<RedisChannel, RedisValue>((channel, message) =>
            {
                Console.WriteLine("Channel1" + " 订阅收到消息:" + message);
            }));

            for (int i = 0; i < 10; i++)
            {
                sub.Publish("Channel1", "msg" + i);//向频道 Channel1 发送信息
                if (i == 2)
                {
                    sub.Unsubscribe("Channel1");//取消订阅
                }
            }

            var batch = database.CreateBatch();

            //批量写
            Task t1 = batch.StringSetAsync("name", "羽");
            Task t2 = batch.StringSetAsync("age", 22);
            batch.Execute();
            Task.WaitAll(t1, t2);
            Console.WriteLine("Age:" + database.StringGet("age"));
            Console.WriteLine("Name:" + database.StringGet("name"));

            //批量写
            for (int i = 0; i < 100000; i++)
            {
                batch.StringSetAsync("age" + i, i);
            }
            batch.Execute();

            //批量读
            List<Task<RedisValue>> valueList = new List<Task<RedisValue>>();
            for (int i = 0; i < 10000; i++)
            {
                Task<RedisValue> tres = batch.StringGetAsync("age" + i);
                valueList.Add(tres);
            }
            batch.Execute();
            foreach (var redisValue in valueList)
            {
                string value = redisValue.Result;//取出对应的value值
            }


            //ConfigurationBuilder builder = new ConfigurationBuilder();
            //builder.AddJsonFile("appsettings.json");
            //var configuration = builder.Build();
            //var collections = configuration.AsEnumerable();
            //foreach (var item in collections)
            //{
            //    Console.WriteLine("{0}={1}", item.Key, item.Value);
            //}

            return View();
        }

相关文章:

C# 菜鸟级别有关于redis的使用

public IActionResult Index() { ConnectionMultiplexer _conn ConnectionMultiplexer.Connect("127.0.0.1:6379");//初始化 var database _conn.GetDatabase(7);//指定连接的库 0 RedisHelper redisHelper new Redi…...

AlexNet的出现推动深度学习的巨大发展

尽管AlexNet&#xff08;2012&#xff09;的代码只比LeNet&#xff08;1998&#xff09;多出几行&#xff0c;但学术界花了很多年才接受深度学习这一概念&#xff0c;并应用其出色的实验结果。 AlexNet&#xff08;由Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton共同设计…...

2024面试offer收割宝典字节篇

1.IO 模型有哪些,讲讲你理解的 nio ,他和 bio,aio 的区别是啥, 谈谈 reactor 模型。 IO 模型主要包括以下几种:1. 阻塞 I/O (BIO): 当一个线程调用 read() 或 write() 系统调用时,如果数据没有准备好或者缓冲区已满,则该线程会被操作系统阻塞,直到有数据可读或写入完…...

冒泡排序及其优化

冒泡排序 int[] arr {1,3,2,9,4,7,2,8};//比较多少轮(n个数字比较n-1次)for(int i0,n arr.length;i<n-1;i) {//每轮比较多少次(n-1-i次)for(int j 0;j<n-1-i;j) {//两两比较if(arr[j] > arr[j1]) { //比较结果为升序排列&#xff0c;如果想要降序排列结果将 >…...

【医学大模型 补全主诉】BioGPT + LSTM 自动补全医院紧急部门主诉

BioGPT LSTM 自动补全医院紧急部门主诉 问题&#xff1a;针对在紧急部门中自动补全主诉的问题子问题1: 提高主诉记录的准确性子问题2: 加快主诉记录的速度子问题3: 统一医疗术语的使用子问题4: 减少打字错误和误解子问题5: 提高非特定主诉的处理能力 解法数据预处理神经网络方…...

HCIE-Datacom证书有效期多久?HCIE考试有哪些内容?

如今越来越多的人开始关注并参与到华为认证的学习中来。 其中&#xff0c;华为认证数据通信专家(HCIE-Datacom)作为华为认证体系中的高级认证&#xff0c;备受瞩目。 那么&#xff0c;关于HCIE-Datacom证书的有效期以及HCIE考试的内容&#xff0c;你知道多少呢&#xff1f;下…...

OpenCV中的边缘检测技术及实现

边缘检测是在电脑如何理解图片这一问题中的一环&#xff0c;它帮助电脑找出照片里的轮廓和分界线。想象一下你在看一幅黑白漫画&#xff0c;轮廓线定义了每一个角色和物体&#xff0c;而电脑要做的&#xff0c;就是通过边缘检测来找出这些线条。这在很多像是图像分析这样的领域…...

机器学习基础(一)理解机器学习的本质

导读&#xff1a;在本文中&#xff0c;将深入探索机器学习的根本原理&#xff0c;包括基本概念、分类及如何通过构建预测模型来应用这些理论。 目录 机器学习 机器学习概念 相关概念 机器学习根本&#xff1a;模型 数据的语言&#xff1a;特征与标签 训练与测试&#xf…...

Eclipse - Makefile generation

Eclipse - Makefile generation References right mouse click on the project -> Properties -> C/C Build -> Generate Makefiles automatically 默认会在 Debug 目录下创建 Makefile 文件。 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/...

Sora:新一代实时音视频通信框架

一、Sora简介 Sora是一个开源的实时音视频通信框架&#xff0c;旨在提供高效、稳定、可扩展的音视频通信解决方案。它基于WebRTC技术&#xff0c;支持跨平台、跨浏览器的实时音视频通信&#xff0c;并且具备低延迟、高并发、易集成等特点。 --点击进入Sora(一定要科学哦&#x…...

龟兔赛跑算法

一、题目 给定一个长度为 n1 的数组nums&#xff0c;数组中所有的数均在 1∼n1 的范围内&#xff0c;其中 n≥1。 请找出数组中任意一个重复的数。 样例 给定 nums [2, 3, 5, 4, 3, 2, 6, 7]。返回 2 或 3。 二、解析 解决这个问题的一种有效方法是使用快慢指针&#xf…...

Yii2项目使用composer异常记录

问题描述 在yii2项目中&#xff0c;使用require命令安装依赖时&#xff0c;出现如下错误提示 该提示意思是&#xff1a;composer运行时&#xff0c;执行了yiisoft/yii2-composer目录下的插件&#xff0c;但是该插件使用的API版本是1.0&#xff0c;但是当前的cmposer版本提供的…...

【蓝桥杯 2021】图像模糊

图像模糊 题目描述 小蓝有一张黑白图像&#xff0c;由 nm 个像素组成&#xff0c;其中从上到下共 n 行&#xff0c;每行从左到右 m 列。每个像素由一个 0 到 255 之间的灰度值表示。 现在&#xff0c;小蓝准备对图像进行模糊操作&#xff0c;操作的方法为&#xff1a; 对于…...

【leetcode】贪心算法介绍

详细且全面地分析贪心算法常用的解题套路、数据结构和代码逻辑如下&#xff1a; 找最值型&#xff1a; 每一步选择都是局部最优解&#xff0c;最后得到的结果就是全局最优解。常用于找零钱问题、区间覆盖问题等。一般情况下&#xff0c;可以通过排序将数据进行处理&#xff0c;…...

com.alibaba.fastjson.JSONException: toJSON error的原因

问题&#xff1a; 导出接口报错&#xff0c;显示json格式化异常 发现问题&#xff1a; 第一个参数为HttpResponse,转换成json的时候报错 修改方法&#xff1a; 1.调换两个参数的位置 2.在aop判断里边 把ServletAPI过滤掉 Before("excudeWebController()")pub…...

华为配置旁挂二层组网直接转发示例

配置旁挂二层组网直接转发示例 组网图形 图1 配置旁挂二层组网直接转发示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件扩展阅读 业务需求 企业用户通过WLAN接入网络&#xff0c;以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时&#xff…...

OLMo 以促进语言模型科学之名 —— OLMo Accelerating the Science of Language Models —— 全文翻译

OLMo: Accelerating the Science of Language Models OLMo 以促进语言模型科学之名 摘要 语言模型在自然语言处理的研究中和商业产品中已经变得无所不在。因为其商业上的重要性激增&#xff0c;所以&#xff0c;其中最强大的模型已经闭源&#xff0c;控制在专有接口之中&#…...

单例模式双端检测详解

正确写出doublecheck的单例模式_double check单例模式-CSDN博客...

秦PLUS荣耀版7.98万元起震撼上市,拉开“电比油低”大幕

2月19日&#xff0c;秦PLUS荣耀版正式上市&#xff0c;五大颠覆、三大焕新刷新A轿体验新高度。DM-i版本5款车型&#xff0c;官方指导价7.98万元——12.58万元&#xff1b;EV版本5款车型&#xff0c;官方指导价10.98万元——13.98万元。正式开启“电比油低”新时代。 电比油低&a…...

学习总结19

# 奶牛的耳语 ## 题目描述 在你的养牛场&#xff0c;所有的奶牛都养在一排呈直线的牛栏中。一共有 n 头奶牛&#xff0c;其中第 i 头牛在直线上所处的位置可以用一个整数坐标 pi(0< pi < 10^8) 来表示。在无聊的日子里&#xff0c;奶牛们常常在自己的牛栏里与其它奶牛交…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)

目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 ​编辑​编辑 UDP的特征 socke函数 bind函数 recvfrom函数&#xff08;接收函数&#xff09; sendto函数&#xff08;发送函数&#xff09; 五、网络编程之 UDP 用…...

ubuntu22.04 安装docker 和docker-compose

首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...