memcached的基本使用

memcached是一种基于键值对的内存数据库,一般应用于缓存数据,提高数据访问速度,减轻后端数据库压力。

安装

这里以Ubuntu为例,其他系统安装方法请看官方文档。

sudo apt-get update
sudo apt-get install memcached

启动

memcached -d

查看帮助

memcached -h

1

netcat(nc)网络请求

查看配置

$ echo "stats settings" | nc localhost 11211
STAT maxbytes 67108864
STAT maxconns 1024
STAT tcpport 11211
...

查看值

$ echo "get runoob" | nc localhost 11211
VALUE runoob 0 5
value
END

telnet连接

telnet 127.0.0.1 11211

Ctrl + ]组合键退出。
telnet>命令行里,输入quit

查看所有slab

$stats items
STAT items:1:number 2

这里items有2个,编号是1。

查看编号为1的slab的所有key:

$stats cachedump 1 0
ITEM runoob [5 b; 0 s]
ITEM peter [11 b; 0 s]

这里cachedump读取slab_id为1的slab,0表示数量不限制,类似sql的limit。

add新增

参数说明:

<command name>set/add/replace
<key>查找关键字
<flags>客户机使用它存储关于键值对的额外信息
<exptime>该数据的存活时间,0表示永远
<bytes>存储字节数
<data block>存储的数据块(可直接理解为key-value结构中的value)
$add id 1 0 4
1234
STORED

set设置

$set id 1 0 4
5678
STORED

replace替换

$replace id 1 0 4
2345
STORED

delete删除

$delete id
DELETED

get查看value

$add id 1 0 4
aaaa
STORED
$get id
VALUE id 1 4
aaaa
END

这里id是key,aaaa是值,1表示flag标记,4表示数据长度。

gets

gets id
VALUE id 1 4 14
aaaa
END

gets比get多一个参数,用来检查数据是否发生变化。

cas

cas即checked and set的意思,只有当最后一个参数和gets所获取的参数匹配时才能存储,否则返回“EXISTS”。

$add id 100 0 5
abcde
STORED
$gets id
VALUE id 100 5 17
abcde
END
$cas id 100 0 5 17
bbbbb
STORED
$gets id
VALUE id 100 5 18
bbbbb
END

append 后面追加

get id
VALUE id 100 5
bbbbb
END
append id 100 0 5
ccccc
STORED
get id
VALUE id 100 10
bbbbbccccc
END

prepend 前面追加

get id
VALUE id 100 10
bbbbbccccc
END
prepend id 100 0 10
dddddddddd
STORED
get id
VALUE id 100 20
ddddddddddbbbbbccccc
END

清空数据

$flush_all
OK
get id
END

查看运行状态

$stats
STAT pid 2711     //进程id
STAT uptime 2453  //总的运行时间,单位描述
STAT time 1344856333  //当前时间
STAT version 1.5.22 //版本
STAT pointer_size 32    //服务器指针位数,一般32位操作系统是32
STAT rusage_user 0.002999  //进程的累计用户时间 
STAT rusage_system 1.277805  //进程的累计系统事件
STAT curr_connections 1  //当前连接数
STAT total_connections 11  //服务器启动后,总连接数
STAT connection_structures 11  //连接结构的数量
STAT cmd_get 17   //总获取次数
STAT cmd_set 1  //总写入次数
STAT cmd_flush 1   //总的的清空次数
STAT get_hits 1  //总的命中次数
STAT get_misses 7   //获取没有命中次数
STAT delete_misses //删除没有命中次数
STAT delete_hits 4   //删除命中次数
STAT incr_misses //递增操作没有命中次数 
STAT incr_hits //递增操作命中次数
STAT decr_misses //递减操作没有命中的次数
STAT decr_hits //递减操作命中的次数
STAT cas_misses //cas设置没有命中次数
STAT cas_hits //cas命中次数
STAT cas_badval //cas操作找到key,但版本过期,没有设置成功
STAT bytes_read 455    //总共获取数据量
STAT bytes_written 1175  //总共写入数据量
STAT limit_maxbytes 1048576  //最大允许使用内存,单位字节
STAT accepting_conns 1    
STAT listen_disabled_num 0
STAT threads 5   //当前线程数
STAT conn_yields 0
STAT bytes 56      //已用缓存空间
STAT curr_items 1  //当前缓存的keyvalue数
STAT total_items 7 //总共缓存的keyvalue数,包括过期删除的
STAT evictions //通过删除keyvalue,释放内存次数
END

查看STAT slabs信息

$stats slabs
STAT 1:chunk_size 96
STAT 1:chunks_per_page 10922
STAT 1:total_pages 1
STAT 1:total_chunks 10922
STAT 1:used_chunks 4
STAT 1:free_chunks 10918
STAT 1:free_chunks_end 0
STAT 1:get_hits 25
STAT 1:cmd_set 30
STAT 1:delete_hits 4
STAT 1:incr_hits 0
STAT 1:decr_hits 0
STAT 1:cas_hits 3
STAT 1:cas_badval 0
STAT 1:touch_hits 0
STAT active_slabs 1
STAT total_malloced 1048576
END

Python读写memcache

from pymemcache.client import baseclient = base.Client(server='127.0.0.1')
client.set('runoob', 'value')value = client.get('runoob')
print(value)

相关链接

https://docs.memcached.org/

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

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

相关文章

Unity2022接入Google广告与支付SDK、导出工程到Android Studio使用JDK17进行打包完整流程与过程中的相关错误及处理经验总结

注&#xff1a;因为本人也是第一次接入广告与支付SDK相关的操作&#xff0c;网上也查了很多教程&#xff0c;很多也都是只言片语或者缺少一些关键步骤的说明&#xff0c;导致本人也是花了很多时间与精力踩了很多的坑才搞定&#xff0c;发出来也是希望能帮助到其他人在遇到相似问…

C++11右值与列表初始化

1.列表初始化 C98传统的{} C98中一般数组和结构体可以用{}进行初始化。 struct Point {int _x;int _y; }; int main() {int array1[] { 1, 2, 3, 4, 5 };int array2[5] { 0 };Point p { 1, 2 };return 0; } C11中的{} C11以后统一初始化方式&#xff0c;想要实现一切对…

单片机复位电路基本理解教程文章·含上拉电阻理解电容开路理解!!!

目录 常见复位电路种类 复位电路电阻上拉理解 电容储能断路理解 ​​​​​​​ ​​​​​​​ 编写不易&#xff0c;仅供学习&#xff0c;请勿搬运&#xff0c;感谢理解 常见元器件驱动电路文章专栏连接 LM7805系列降压芯片驱动电路降压芯片驱动电路详解-…

【大模型系列】Mobile-Agent(2024.04)

Paper: https://arxiv.org/pdf/2401.16158Github: https://github.com/X-PLUG/MobileAgentAuthor: Junyang Wang et al. 北交、阿里巴巴 Mobile-agent核心工作&#xff1a; 首先使用视觉感知工具(检测和OCR模型)识别前端界面中文本和图像元素的精确位置 检测图标&#xff1a;…

Android Studio学习笔记

01-课程前面的话 02-Android 发展历程 03-Android 开发机器配置要求 04-Android Studio与SDK下载安装 05-创建工程与创建模拟器

【数据库系列】Spring Boot 中整合 MyBatis-Plus详细步骤

在 Spring Boot 中整合 MyBatis-Plus 可以按照以下步骤进行&#xff1a; 一、整合步骤 1. 创建 Spring Boot 项目 首先&#xff0c;使用 Spring Initializr&#xff08;https://start.spring.io/&#xff09;创建一个新的 Spring Boot 项目。在创建过程中&#xff0c;选择以…

CVSS漏洞评分系统曝出严重缺陷

在网络安全领域&#xff0c;漏洞的管理和评估是企业防御的重要一环。然而&#xff0c;随着技术的快速发展和攻击手段的不断演变&#xff0c;传统的漏洞评分系统显露出了不可忽视的弊端。在近期的Black Hat欧洲大会上&#xff0c;摩根大通的网络安全专家警告称&#xff0c;通用漏…

深入剖析MySQL数据库架构:核心组件、存储引擎与优化策略(一)

sql语句分为两大类&#xff1a;查询&#xff08;select&#xff09;、增删改----修改&#xff08;update&#xff09; select语句的执行流程 执行sql语句的流程&#xff1a;连接数据库、缓存查询、解析器、优化器、执行器、存储引擎操作数据 客户端&#xff1a;图形界面工具…

电子病历四级视角下SQL语句的优化策略与实践用例研究

一、引言 1.1 研究背景与意义 在当今数智化医疗时代,电子病历(Electronic Medical Record,EMR)系统已成为医疗机构信息化建设的核心组成部分。电子病历不仅承载着患者的诊疗信息,更是医疗决策、质量控制、科研分析以及医疗管理的重要依据。根据国家卫生健康委发布的《电…

C++简明教程(14)动态库和静态库的内存共享机制

总结&#xff0c;动态库共享内存&#xff0c;静态库独占一份内存。

Elasticsearch向量检索需要的数据集以及768维向量生成

Elasticsearch8.17.0在mac上的安装 Kibana8.17.0在mac上的安装 Elasticsearch检索方案之一&#xff1a;使用fromsize实现分页 快速掌握Elasticsearch检索之二&#xff1a;滚动查询(scrool)获取全量数据(golang) Elasticsearch检索之三&#xff1a;官方推荐方案search_after…

CSS2笔记

一、CSS基础 1.CSS简介 2.CSS的编写位置 2.1 行内样式 2.2 内部样式 2.3 外部样式 3.样式表的优先级 4.CSS语法规范 5.CSS代码风格 二、CSS选择器 1.CSS基本选择器 通配选择器元素选择器类选择器id选择器 1.1 通配选择器 1.2 元素选择器 1.3 类选择器 1.4 ID选择器 1.5 基…

基于AT89C51单片机的可暂停八路抢答器设计

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/90196607?spm1001.2014.3001.5503 C15 部分参考设计如下&#xff1a; 摘要 随着社会进步和科技发展&#xff0c;电子设备在各类活动中的应用日益普遍&#xff0c…

【python】unittest单元测试

文章目录 基本使用不同启动方式的区别 基本使用 下面是根据文档写的一个demo&#xff0c;主要的内容基本都包含了&#xff0c;使用时导入自己的业务类测试类中的方法就行。 import unittest# 测试类不强制test开头&#xff0c;仅作为规范。但必须继承unittest.TestCase class…

从0入门自主空中机器人-4-【PX4与Gazebo入门】

前言: 从上一篇的文章 从0入门自主空中机器人-3-【环境与常用软件安装】 | MGodmonkeyの世界 中我们的机载电脑已经安装了系统和常用的软件&#xff0c;这一篇文章中我们入门一下无人机常用的开源飞控PX4&#xff0c;以及ROS中无人机的仿真 1. PX4的安装 1.1 PX4固件代码的下载…

SqlSession的线程安全问题源码分析

&#x1f3ae; 作者主页&#xff1a;点击 &#x1f381; 完整专栏和代码&#xff1a;点击 &#x1f3e1; 博客主页&#xff1a;点击 文章目录 SqlSession 是线程安全的吗&#xff1f;为什么说是线程不安全的&#xff1f;事务管理问题 数据库连接的共享问题 一级缓存线程安全问题…

Unity Mesh生成Cube

1. 配置一个Cube的每个面的数据 一共是6个面&#xff0c;每个面包含的数据包括4个顶点的相对顶点坐标&#xff08;Cube的中心为原点&#xff09;&#xff0c;法线方向&#xff0c;UV坐标&#xff0c;顶点渲染顺序&#xff0c;以及这个面用到的材质&#xff0c;因为这里是Top&am…

小程序组件 —— 22 组件案例 - 轮播区域绘制

这一节我们实现轮播图最外层的盒子&#xff0c;也就是把轮播图的最外层搭好&#xff0c;先不给轮播图添加图片&#xff0c;因为图片属于新的组件&#xff0c;组件里面有一些知识点&#xff0c;需要单独分开讲&#xff1b; 回顾一下&#xff0c;在进行传统网页开发时&#xff0…

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(二)

****非斜体正文为原文献内容&#xff08;也包含笔者的补充&#xff09;&#xff0c;灰色块中是对文章细节的进一步详细解释&#xff01; 3.1.2 基于注意力的解释&#xff08;Attention-Based Explanation&#xff09; 注意力机制可以揭示输入数据中各个部分之间的关系&#…

git reset --hard(重置到当前提交,所有未提交的更改都会被永久丢弃)

git reset --hard 是一个强大的命令&#xff0c;它会将你的工作目录、暂存区和当前分支的 HEAD 指针重置到指定的提交状态&#xff0c;所有未提交的更改都会被永久丢弃。因此&#xff0c;使用这个命令时需要非常小心。 基本用法 重置到当前提交&#xff08;丢弃所有未提交的更…