Memcached总结

一、介绍

Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。

Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。

目的:通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

二、命令

(1)存储命令

#(1)Set 
#set 命令用于将 value(数据值) 存储在指定的 key(键) 中
#如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用
set key flags exptime bytes [noreply] 
value #输出
STORED:保存成功后输出。
ERROR:在保存失败后输出。#(2)Add
#add 命令用于将 value(数据值) 存储在指定的 key(键) 中
#如果 add 的 key 已经存在,则不会更新数据(过期的 key 会更新),之前的值将仍然保持相同,并且您将获得响应 NOT_STORED
add key flags exptime bytes [noreply]
value#输出
STORED:保存成功后输出。
NOT_STORED :在保存失败后输出。#(3)Replace
#replace 命令用于替换已存在的 key(键) 的 value(数据值)
#如果 key 不存在,则替换失败,并且您将获得响应 NOT_STORED
replace key flags exptime bytes [noreply]
value#输出
STORED:保存成功后输出。
NOT_STORED:执行替换失败后输出。#(4)Append 
#append 命令用于向已存在 key(键) 的 value(数据值) 后面追加数据
append key flags exptime appendBytes [noreply]
value#输出
STORED:保存成功后输出。
NOT_STORED:该键在 Memcached 上不存在。
CLIENT_ERROR:执行错误。#(4)Prepend
#prepend 命令用于向已存在 key(键) 的 value(数据值) 前面追加数据
prepend key flags exptime bytes [noreply]
value#输出
STORED:保存成功后输出。
NOT_STORED:该键在 Memcached 上不存在。
CLIENT_ERROR:执行错误。#(5)CAS
#CAS(Check-And-Set 或 Compare-And-Swap) 命令用于执行一个"检查并设置"的操作
#它仅在当前客户端最后一次取值后,该key 对应的值没有被其他客户端修改的情况下, 才能够将值写入
#检查是通过cas_token(gets指令获取)参数进行的, 这个参数是Memcach指定给已经存在的元素的一个唯一的64位值
cas key flags exptime bytes unique_cas_token [noreply]
value#输出
STORED:保存成功后输出。
ERROR:保存出错或语法错误。
EXISTS:在最后一次取值后另外一个用户也在更新该数据。
NOT_FOUND:Memcached 服务上不存在该键值。

(2)查找命令

#(1)Get
#get 命令获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空
get key1 [key2 key3 ...]#输出
VALUE key flags bytes
value
END#(2)Gets
#gets 命令获取带有 CAS 令牌存 的 value(数据值) ,如果 key 不存在,则返回空
gets key1 [key2 key3 ...]#输出
VALUE key flags bytes cas
value
END#(3)Delete
#delete 命令用于删除已存在的 key(键)
delete key [noreply]#输出
DELETED:删除成功。
ERROR:语法错误或删除失败。
NOT_FOUND:key 不存在。#(4)Incr  Decr  
#incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作
#incr 与 decr 命令操作的数据必须是十进制的32位无符号整数
#如果 key 不存在返回 NOT_FOUND,如果键的值不为数字,则返回 CLIENT_ERROR,其他错误返回 ERROR
incr key increment_value
decr key decrement_value#输出
NOT_FOUND:key 不存在。
CLIENT_ERROR:自增值不是对象。
ERROR其他错误,如语法错误等。

(3)统计命令

#(1)stats
#stats 命令用于返回统计信息例如 PID(进程号)、版本号、连接数等
stats#输出
STAT pid xxx
...
Endpid:	memcache服务器进程ID
uptime:服务器已运行秒数
time:服务器当前Unix时间戳
version:memcache版本
pointer_size:操作系统指针大小
rusage_user:进程累计用户时间
rusage_system:进程累计系统时间
curr_connections:当前连接数量
total_connections:Memcached运行以来连接总数
connection_structures:Memcached分配的连接结构数量
cmd_get:get命令请求次数
cmd_set:set命令请求次数
cmd_flush:flush命令请求次数
get_hits:get命令命中次数
get_misses:get命令未命中次数
delete_misses:delete命令未命中次数
delete_hits:delete命令命中次数
incr_misses:incr命令未命中次数
incr_hits:incr命令命中次数
decr_misses:decr命令未命中次数
decr_hits:decr命令命中次数
cas_misses:cas命令未命中次数
cas_hits:cas命令命中次数
cas_badval:使用擦拭次数
auth_cmds:认证命令处理的次数
auth_errors:认证失败数目
bytes_read:读取总字节数
bytes_written:发送总字节数
limit_maxbytes:分配的内存总大小(字节)
accepting_conns:服务器是否达到过最大连接(0/1)
listen_disabled_num:失效的监听数
threads:当前线程数
conn_yields:连接操作主动放弃数目
bytes:当前存储占用的字节数
curr_items:当前存储的数据总数
total_items:启动以来存储的数据总数
evictions:LRU释放的对象数目
reclaimed:已过期的数据条目来存储新数据的数目
#(2)stats
#stats items 命令用于显示各个 slab 中 item 的数目和存储时长(最后一次访问距离现在的秒数)
stats items#输出:
STAT items:slab_id:number xx
STAT items:slab_id:age xx
STAT items:slab_id:evicted xx
STAT items:slab_id:evicted_nonzero xx
STAT items:slab_id:evicted_time xx
STAT items:slab_id:outofmemory xx
STAT items:slab_id:tailrepairs xx
STAT items:slab_id:reclaimed xx
STAT items:slab_id:expired_unfetched xx
STAT items:slab_id:evicted_unfetched xx
... slab_id_n ...
END
#(3)stats slabs
#stats slabs 命令用于显示各个slab的信息,包括chunk的大小、数目、使用情况等
stats slabs#输出
STAT slab_id:chunk_size xx
STAT slab_id:chunks_per_page xx
STAT slab_id:total_pages xx
STAT slab_id:total_chunks xx
STAT slab_id:used_chunks xx
STAT slab_id:free_chunks xx
STAT slab_id:free_chunks_end xx
STAT slab_id:mem_requested xx
STAT slab_id:get_hits xx
STAT slab_id:cmd_set xx
STAT slab_id:delete_hits xx
STAT slab_id:incr_hits xx
STAT slab_id:decr_hits xx
STAT slab_id:cas_hits xx
STAT slab_id:cas_badval xx
STAT slab_id:touch_hits xx
... slab_id_n ...
STAT active_slabs xx
STAT total_malloced xx
#(4)stats sizes
#stats sizes 命令用于显示所有item的大小和个数。
#该信息返回两列,第一列是 item 的大小,第二列是 item 的个数。
stats sizesSTAT item_size item_count
END
#(5)flush_all
# flush_all 命令用于清理缓存中的所有 key=>value(键=>值) 对。
#该命令提供了一个可选参数 time,用于在制定的时间后执行清理缓存操作。
flush_all [time] [noreply]
#(6)stats cachedump
#slab id的缓存转储,并限制要转储的最大键数。作为遍历单个slab的所有key
stats cachedump slab_id key_size

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

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

相关文章

浅析C#中单点登录的原理和使用

是单点登录? 我想肯定有一部分人“望文生义”的认为单点登录就是一个用户只能在一处登录,其实这是错误的理解(我记得我第一次也是这么理解的)。 单点登录指的是多个子系统只需要登录一个,其他系统不需要登录了&#xf…

虚拟机和linux的安装

下载地址: 虚拟机14版本的: 链接:https://pan.baidu.com/s/1lxp62gerSI_29wQDuTEAJQ 提取码:53dn 乌班图 https://ubuntu.com/download

Mybatis入门程序增删改查操作

学习目标 了解Mybatis的基本知识熟悉Mybatis的工作原理掌握Mybatis入门程序的编写 文章目录 1.初始Mybatis 2.Mybatis入门程序 3.Mybatis操作总结 1.初始Mybatis MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所…

Memcached:列出所有Key

翻译自 Memcached:列出所有Key 在一般情况下,有没有办法列出所有的Key,一个memcached的实例存储。但是,您可以列出类似于第一个1Meg键的内容,这在开发过程中通常就足够了。这是如何做: Telnet到您的服务…

jzoj5354-导弹拦截【dp,最大匹配,最少路径覆盖】

正题 解题思路 一个东西可以拦截导弹,每次只能打比上一次x,y,zx,y,zx,y,z都大的导弹。求一个最多可以拦截掉多少个导弹和至少要多少个才能拦截完。拦截导弹没有顺序要求。 解题思路 由于没有顺序要求所以我们可以直接定义一个比较,然后第一问做法和导弹…

ASP.NET Core 2.0 全局配置项

问题 如何在 ASP.NET Core 2.0 应用程序中读取全局配置项? 答案 首先新建一个空项目,并添加两个配置文件: 1. appsettings.json { "Section1": { "SettingA": "ValueA", "SettingB": "V…

Auto.JS 教程

最近淘宝双十一活动来了,有个自动领猫币的脚本,基于auto.js,亲测有效。有兴趣的点这里 声明: 本教程基于b站up主-笔青居的视频。传送门:https://space.bilibili.com/21486893/video Auto.JS Auto.js 是个基于 JavaScri…

Mybatis的核心配置

学习目标 了解Mybatis核心对象的作用熟悉Mybatis配置文件中各个元素的作用掌握Mybatis映射文件中常用元素的使用 文章目录 1.Mybatis的核心对象 1.1 SqlSessionFactory 1.2 SqlSession 1.2.1 使用工具类创建SqlSession 2. 配置文件 2.1 主要元素 3. 映射文件 2.1主要元素…

jzoj5353-村通网【最小生成树】

正题 题目大意 一条边的价格为两个点的曼哈顿距离乘B,修建源点价格为A。要求每个联通块内都有源点的最小价格。 解题思路 对于最终每个联通块肯定是棵树。对于合并每个联通块可以减少一个源点。所以将最小生成树上价格小于A的边都加进去就可以了。 codecodecode …

auto.js小案例

微信朋友圈自动点赞 var it className("ListView").findOne(); var i1;while(i<5){say desc(评论).findOne();say.click();goodtext(赞).findOne();goodpgood.parent();goodp.click();sleep(1000);it.scrollDown();i; }home();微信轰炸机 toast("轰炸机已准…

本土开源、立足全球 | COSCon'17

全球公有云 90% 的服务器运行的是开源 Linux 操作系统&#xff01; GitHub 上有超过 150 万个组织&#xff0c;正在进行开源开发&#xff01; 本土开源项目目前在 Apache 的顶级以及孵化列表中已经有 6 个&#xff01; 你想知道这其中都有什么奥秘吗&#xff1f;Apache 顶级项目…

Zookeeper选举原理——FastLeaderElection

转载自 Zookeeper选举原理 作为一个分布式应用程序协调服务&#xff0c;在大型网站中&#xff0c;其本身也是集群部署的&#xff0c;安装zookeeper的时候最好是单数节点&#xff0c;因为要选举。Zookeeper的leader节点是集群工作的核心&#xff0c;用来更新并保证leader和ser…

P2742-二维凸包/圈奶牛Fencing the Cows【凸包】

正题 题目链接:https://www.luogu.org/recordnew/lists?uidSSL_WYC_zombieeeeee&pidP2742&status&sort0 题目大意 求凸包总长度 解题思路 求凸包 codecodecode #include<cstdio> #include<algorithm> #include<cmath> #define N 10010 usin…

Wamp升级php到7.3版本

在网上找了关于cms的模板&#xff0c;结果显示php版本低于7.2的无法使用。 找了很多wamp和xampp的安装包&#xff0c;要不然版本没到7.2&#xff0c;要不然安装无法使用&#xff0c;浪费了很多时间 于是想自己手动把php升到7.3版本&#xff0c;刚开始看教程&#xff0c;特别麻烦…

浅析Entity Framework Core中的并发处理

前言 Entity Framework Core 2.0更新也已经有一段时间了,园子里也有不少的文章.. 本文主要是浅析一下Entity Framework Core的并发处理方式. 1.常见的并发处理策略 要了解如何处理并发,就要知道并发的一般处理策略 悲观并发策略 悲观并发策略,正如其名,它指的是对数据被外界&…

Mybatis的关联映射

学习目标 了解数据表之间以及对象之间的三种关联关系熟悉关联关系中的嵌套查询和嵌套结果掌握一对一、一对多和多对多关联映射的使用文章目录 1. 关联关系概述 2. 一对一 3.一对多 4. 多对多 1. 关联关系概述 一对一的关系&#xff1a;就是在本类中定义对方类型的对象一对…

POJ3348-Cows【凸包,计算几何】

正题 题目大意 凸包的面积S&#xff0c;求⌊S/50⌋\left \lfloor S/50\right \rfloor⌊S/50⌋ 解题思路 求凸包&#xff0c;然后求面积&#xff0c;然后求答案。 codecodecode #include<cstdio> #include<algorithm> #include<cmath> #define N 10010 usi…

【乱码】字符串乱码

1、html <meta charset"UTF-8">2、mysql mysql_query(set names "utf8");3、php header("Content-Type: application/json;charsetUTF-8");json解码 $a你好; echo json_encode($a);加入 $aurldecode($a);即可解码

.NET Core 使用RSA算法 加密/解密/签名/验证签名

前言 前不久移植了支付宝官方的SDK&#xff0c;以适用ASP.NET Core使用支付宝支付&#xff0c;但是最近有好几位用户反应在Linux下使用会出错&#xff0c;调试发现是RSA加密的错误&#xff0c;下面具体讲一讲。 RSA在.NET Core的改动 以前我们使用RSA加密主要是使用RSACryptoSe…

C++描述杭电OJ 2012.素数判定 ||

C描述杭电OJ 2012.素数判定 || Problem Description 对于表达式n^2n41&#xff0c;当n在&#xff08;x,y&#xff09;范围内取整数值时&#xff08;包括x,y&#xff09;(-39<x<y<50)&#xff0c;判定该表达式的值是否都为素数。 Input 输入数据有多组&#xff0c;…