XiaoFeng.Memcached 目录
Memcached技术知识
Memcached缓存 用法实例
作者 : Jacky 发布于 2024-09-10 18:12:03 浏览 228 次
XiaoFeng.Memcached提供了友好的访问API。Memcached中间件,支持.NET框架、.NET内核和.NET标准库,一种非常方便操作的客户端工具。实现了Set,Add,Replace,PrePend,Append,Cas,Get,Gets,Gat,Gats,Delete,Touch,Stats,Stats Items,Stats Slabs,Stats Sizes,Flush_All,线程池功能。

XiaoFeng.Memcached

XiaoFeng.Memcached提供了友好的访问API。Memcached中间件,支持.NET框架、.NET内核和.NET标准库,一种非常方便操作的客户端工具。实现了Set,Add,Replace,PrePend,Append,Cas,Get,Gets,Gat,Gats,Delete,Touch,Stats,Stats Items,Stats Slabs,Stats Sizes,Flush_All,线程池功能。

Memcached缓存数据库连接驱动

Memcached连接串

memcached://memcached:123456@127.0.0.1:11211?ConnectionTimeout=10&ReadTimeout=10&SendTimeout=10&PoolSize=3

[<protocol>]://[[<username>:<password>@]<host>:<port>][?<p1>=<v1>[&<p2>=<v2>]]
|----------|---|-----------|-----------|------|------|------------|-----------------------|
| protocol |   | username  | password  | host | port |  database  |  params               |

memcached 账号

123456 密码

127.0.0.1 主机

11211 端口

ConnectionTimeout 连接超时时长

ReadTimeout 读取数据超时时长

SendTimeout 发送数据超时时长

PoolSize 连接池中连接数量

最小的连接串是:memcached://127.0.0.1

实例化一个memcached对象

var memcached = new XiaoFeng.Memcached.MemcachedClient("memcached://memcached:123456@127.0.0.1:11211");

使用方法

//实例化
var memcached = new XiaoFeng.Memcached.MemcachedClient("memcached://memcached:123456@127.0.0.1:11211");
//最大压缩比
memcached.CompressLength = 1024;
//协议
memcached.MemcachedProtocol = MemcachedProtocol.Text;
//Hash算法
memcached.Transform = new XiaoFeng.Memcached.Transform.FNV1_64();

//给key设置一个值
var set = await memcached.SetAsync("abc", "abcda");
//如果key不存在的话,就添加 异步
var add = await memcached.AddAsync("a2", "abcde");
//用来替换已知key的value
var replace = await memcached.ReplaceAsync("a3", "abc3");
//表示将提供的值附加到现有key的value之后,是一个附加操作
var append = await memcached.AppendAsync("a3", "a4f");
//将此数据添加到现有数据之前的现有键中
var prepend = await memcached.PrependAsync("a3", "a3d");
//一个原子操作,只有当casunique匹配的时候,才会设置对应的值
var cas = await memcached.CasAsync("a1", "aaa", 113);
//获取key的value值,若key不存在,返回空。
var get = await memcached.GetAsync("a1");
//用于获取key的带有CAS令牌值的value值,若key不存在,返回空。
var gets = await memcached.GetsAsync("a1");
//获取key的value值,若key不存在,返回空。更新缓存时间
var gat = await memcached.GatAsync(5*24 * 60, "a1");
//获取key的value值,若key不存在,返回空。更新缓存时间
var gat = await memcached.GatAsync(6*24 * 60, "a1","a2");
//用于获取key的带有CAS令牌值的value值,若key不存在,返回空。支持多个key 更新缓存时间
var gats = await memcached.GatsAsync(5 * 24 * 60, "a1");
//删除已存在的 key(键)
var delete = await memcached.DeleteAsync("a10");
//给key设置一个值
var set = await memcached.SetAsync("a10", 100);
//递增
var incr = await memcached.IncrementAsync("a10", 10);
//递减
var decr = await memcached.DecrementAsync("a10", 10);
//修改key过期时间
var touch = await memcached.TouchAsync("a10", 24 * 60);
//统计信息
var stats = await memcached.StatsAsync();
//显示各个 slab 中 item 的数目和存储时长(最后一次访问距离现在的秒数)
var items = await memcached.StatsItemsAsync();
//显示各个slab的信息,包括chunk的大小、数目、使用情况等
var slabs = await memcached.StatsSlabsAsync();
//显示所有item的大小和个数
var sizes = await memcached.StatsSizesAsync();
//用于清理缓存中的所有 key=>value(键=>值) 对
var flushall = await memcached.FulshAllAsync();
所有评论(0)