浅谈C#库之Memcached

news2024/11/30 8:40:37

一、Memcached库介绍

Memcached是一个开源的高性能分布式内存缓存系统,它通过将数据存储在内存中来加速动态Web应用。以下是Memcached的一些关键特点:

1、高性能:Memcached使用内存进行数据存储,访问速度极快。

2、分布式:支持多节点分布式部署,具备良好的扩展性。

3、简单易用:API简单直观,易于集成到各种编程语言中,包括C#。

4、轻量级:占用资源少,安装配置简单。

二、Memcached的工作原理

Memcached的核心是一个Key-Value存储系统,支持以下基本操作:

  • set:将数据存储到缓存中。
  • get:从缓存中读取数据。
  • delete:从缓存中删除数据。
  • incr/decr:对缓存中的数值进行增加或减少操作。

Memcached采用LRU(Least Recently Used,最近最少使用)算法管理缓存数据。当缓存容量达到上限时,会自动删除最久未使用的数据,以腾出空间存储新的数据。

三、使用Memcached的方法

在C#中使用Memcached,通常需要依赖于第三方库,如Enyim.Caching。以下是使用Enyim.Caching库的基本步骤:

安装Enyim.Caching库

通过NuGet包管理器安装Enyim.Caching库。

Install-Package EnyimMemcached

配置Memcached客户端

在代码中配置Memcached服务器地址。

var serviceProvider = new ServiceCollection()
    .AddEnyimMemcached(options =>
    {
        options.AddServer("127.0.0.1", 11211); // 配置Memcached服务器地址
    })
    .BuildServiceProvider();
var client = serviceProvider.GetService<IMemcachedClient>();

存储和读取数据

使用Memcached客户端进行数据的存储和读取。

// 存储数据
string key = "exampleKey";
string value = "Hello, Memcached!";
client.Set(key, value);

// 读取数据
var cachedValue = client.Get<string>(key);

高级操作

Enyim.Caching还支持其他高级操作,如删除数据、增加和减少数值等。



四、Memcached的完整代码示例

using System;
using Enyim.Caching;
using Enyim.Caching.Memcached;

class Program
{
    static void Main(string[] args)
    {
        // 创建Memcached客户端
        var memcachedClient = new MemcachedClient();

        // 添加服务器节点
        memcachedClient.AddServer("127.0.0.1", 11211); // 替换为你的Memcached服务器地址和端口

        // 设置缓存项
        string key = "myKey";
        string value = "Hello, World!";
        memcachedClient.Store(StoreMode.Set, key, value, TimeSpan.FromMinutes(10)); // 设置10分钟过期时间

        Console.WriteLine($"Stored value for key '{key}': {value}");

        // 获取缓存项
        string cachedValue = memcachedClient.Get<string>(key);
        Console.WriteLine($"Retrieved value for key '{key}': {cachedValue}");

        // 删除缓存项
        memcachedClient.Remove(key);
        Console.WriteLine($"Removed key '{key}' from cache.");

        // 检查是否删除成功
        try
        {
            string deletedValue = memcachedClient.Get<string>(key);
            Console.WriteLine($"Retrieved value for key '{key}': {deletedValue}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error retrieving key '{key}': {ex.Message}");
        }

        // 保持控制台打开,直到用户按下任意键
        Console.WriteLine("Press any key to exit...");
        Console.ReadKey();
    }
}

这个示例程序执行了以下操作:

1、创建了一个MemcachedClient实例。

2、向客户端添加了一个Memcached服务器节点。

3、使用Store方法将一个字符串值存储到缓存中,并设置了10分钟的过期时间。

4、使用Get<T>方法从缓存中检索该值。

5、使用Remove方法从缓存中删除该值。

6、尝试再次检索已删除的值,以验证删除操作是否成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2250326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cookie跨域

跨域&#xff1a;跨域名&#xff08;IP&#xff09; 跨域的目的是共享Cookie。 session操作http协议&#xff0c;每次既要request&#xff0c;也要response&#xff0c;cookie在创建的时候会产生一个字符串然后随着response返回。 全网站的各个页面都会带着登陆的时候的cookie …

虚拟机CentOS系统通过Docker部署RSSHub并映射到主机

公告 &#x1f4cc;更新公告 20241124-该文章已同步更新到作者的个人博客&#xff08;链接&#xff1a;虚拟机CentOS系统通过Docker部署RSSHub并映射到主机&#xff09; 一、编辑 YUM 配置文件 1、打开 CentOS 系统中的 YUM 软件仓库配置文件 vim /etc/yum.repos.d/CentOS-Ba…

DreamCamera2相机预览变形的处理

最近遇到一个问题&#xff0c;相机更换了摄像头后&#xff0c;发现人像角度顺时针旋转了90度&#xff0c;待人像角度正常后&#xff0c;发现 预览时图像有挤压变形&#xff0c;最终解决。在此记录 一人像角度的修改 先放示意图 设备预览人像角度如图1所示&#xff0c;顺时针旋…

Taro React小程序开发框架 总结

目录 一、安装 二、目录结构 三、创建一个自定义页面 四、路由 1、API 2、传参 3、获取路由参数 4、设置TabBar 五、组件 六、API Taro非常好用的小程序框架&#xff0c;React开发者无缝衔接上。 一、安装 官方文档&#xff1a;Taro 文档 注意&#xff0c;项目创建…

RPA:电商订单处理自动化

哈喽&#xff0c;大家好&#xff0c;我是若木&#xff0c;最近闲暇时间较多&#xff0c;于是便跟着教程做了一个及RPA&#xff0c;谈到这个&#xff0c;可能很多人并不是很了解&#xff0c;但是实际上&#xff0c;这玩意却遍布文末生活的边边角角。话不多说&#xff0c;我直接上…

通过金蝶云星空实现高效仓储管理

金蝶云星空数据集成到旺店通WMS的技术案例分享 在企业日常运营中&#xff0c;库存管理和物流调度是至关重要的环节。为了实现高效的数据流转和业务协同&#xff0c;我们采用了轻易云数据集成平台&#xff0c;将金蝶云星空的数据无缝对接到旺店通WMS。本次案例聚焦于“调拨入库…

go结构体匿名“继承“方法冲突时继承优先顺序

在 Go 语言中&#xff0c;匿名字段&#xff08;也称为嵌入字段&#xff09;可以用来实现继承的效果。当你在一个结构体中匿名嵌入另一个结构体时&#xff0c;嵌入结构体的方法会被提升到外部结构体中。这意味着你可以直接通过外部结构体调用嵌入结构体的方法。 如果多个嵌入结…

丹摩|丹摩智算平台使用教学指南

本指南旨在为新用户提供一个详细的操作步骤和实用的入门指导&#xff0c;帮助大家快速上手丹摩智算平台。 一、平台简介 丹摩智算平台是一款强大的数据分析和计算平台&#xff0c;支持多种编程语言&#xff0c;提供丰富的数据处理和机器学习工具。无论您是数据分析师、开发者…

从网桥到交换机:技术演变与应用场景

交换机和网桥是网络基础设施中不可或缺的设备&#xff0c;它们都用于提升网络性能和连接网络节点。然而&#xff0c;两者在设计目的、功能范围和适用场景上存在诸多不同之处。本文将从功能、差异和相互关系的角度&#xff0c;探讨交换机与网桥在网络中的角色。 交换机的功能与特…

ollama部署bge-m3,并实现与dify平台对接

概述 这几天为了写技术博客,各种组件可谓是装了卸,卸了装,只想复现一些东西,确保你们看到的东西都是可以复现的。 (看在我这么认真的份上,求个关注啊,拜托各位观众老爷了。) 这不,为了实验在windows上docker里运行pytorch,把docker重装了。 dify也得重装: Dify基…

《String类》

目录 一、定义与概述 二、创建字符串对象 2.1 直接赋值 2.2 使用构造函数 三、字符串的不可变性 四、常用方法 4.1 String对象的比较 4.1.1 比较是否引用同一个对象 4.1.2 boolean equals(Object anObject)方法&#xff1a;按照字典序比较 4.1.3 int compareTo(Strin…

渗透测试笔记—Windows基础和病毒制作

声明&#xff1a; 学习视频来自B站up主 【泷羽sec】有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&am…

编辑Word文档时手滑没点保存怎么办

今天帮人打了份报告&#xff0c;关掉的时候手滑点错了地方没保存。当然我找回来了&#xff0c;也许会有人不知道怎么找回来&#xff0c;记录在这里供人参考。 一、通过“信息”页面的“管理版本”命令组的“恢复未保存的文档”命令调出未保存的文档 二、在调出的打开文件对话框…

【娱乐项目】基于cnchar库与JavaScript的汉字查询工具

Demo介绍 利用了 cnchar 库来进行汉字相关的信息查询&#xff0c;并展示了汉字的拼音、笔画数、笔画顺序、笔画动画等信息用户输入一个汉字后&#xff0c;点击查询按钮&#xff0c;页面会展示该汉字的拼音、笔画数、笔画顺序&#xff0c;并绘制相应的笔画动画和测试图案 cnchar…

vsftpd 的安装和应用(超详细!!!)

FTP&#xff08;File Transfer Protocol&#xff0c;文件传输协议&#xff09;是一种用于在计算机网络上进行文件传输的标准协议。它允许用户从一台计算机向另一台计算机上传或下载文件。FTP的工作原理涉及到客户端和服务器之间的交互&#xff0c;以及数据传输的过程。 一、FT…

Apifox 11月更新|支持发布多个文档站、文档站支持 Algolia 搜索配置、从返回响应直接设置断言

Apifox 新版本上线啦&#xff01;&#xff01;&#xff01; 在API管理和自动化测试的领域&#xff0c;工具的每一次更新&#xff0c;都意味着开发者和测试人员的工作效率将进一步提升。而11月的Apifox更新&#xff0c;再次为我们带来了几个重磅的新功能&#xff0c;助力提升文档…

关于音频 DSP 的接口种类以及其应用场景介绍

在音频系统中&#xff0c;DSP&#xff08;数字信号处理器&#xff09;扮演着重要角色&#xff0c;通常会通过不同的接口与音频系统中的其他组件&#xff08;如功放、扬声器、音频源等&#xff09;进行连接。以汽车应用场景为例&#xff0c;以下是一些常见的接口类型分类及其介绍…

Java多线程介绍及使用指南

“多线程”&#xff1a;并发 要介绍线程&#xff0c;首先要区分开程序、进程和线程这三者的区别。 程序&#xff1a;具有一定功能的代码的集合&#xff0c;但是是静态的&#xff0c;没有启动运行 进程&#xff1a;启动运行的程序【资源的分配单位】 线程&#xff1a;进程中的…

Python-链表数据结构学习(1)

一、什么是链表数据&#xff1f; 链表是一种通过指针串联在一起的数据结构&#xff0c;每个节点由2部分组成&#xff0c;一个是数据域&#xff0c;一个是指针域&#xff08;存放下一个节点的指针&#xff09;。最后一个节点的指针域指向null&#xff08;空指针的意思&#xff0…

《心灵奇旅》观后感

1 这是一部能够给心灵带来慰藉的电影&#xff0c;或许在人生迷茫的时候&#xff0c;可以看一下&#xff0c;洗涤内心&#xff0c;换还自己一片净土。 影片的男主乔伊是一位音乐老师&#xff0c;他一直梦想着能够加入乐队演出。然而&#xff0c;在即将有机会出演时&#xff0c;他…