前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MemCache 入门极简教程

MemCache 入门极简教程

作者头像
KangVcar
发布于 2018-07-06 07:11:31
发布于 2018-07-06 07:11:31
4800
举报
文章被收录于专栏:kangvcarkangvcar

MemCache 概述

MemCache虽然被称为”分布式缓存”,但是MemCache本身完全不具备分布式的功能

Memcache 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。 MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。MemCache设计理念就是小而强大,它简单的设计促进了快速部署、易于开发并解决面对大规模的数据缓存的许多难题,而所开放的API使得MemCache能用于Java、C/C++/C#、PerlPython、PHP、Ruby等大部分流行的程序语言。

MemCache 安装

Windows 下安装 MemCache
  1. 点击下载 安装包
  2. 解压下载后的文件
  1. 使用管理员身份运行cmd 并切换到上一步解压后的目录下, 运行命令 memcached -d install 来把memcache安装为系统服务, 运行命令 memcached -d start 来启动服务
  1. 如果成功,则可以在系统服务上看到 memcache 服务, memcache默认在localhost的11211端口上启动了一个实例
  1. 在cmd 下输入命令 telnet localhost 11211 来连接 memcache 实例
Ubuntu 下安装 MemCache
  1. 使用命令 sudo apt-get install -y memcached 来安装memcache
  2. 安装完成后默认会在 localhost:11211 上启动一个默认实例
  3. 使用命令 ps aux | grep memcached 来查看是否正常运行
  1. 使用命令 telnet localhost 11211 来连接memcache实例

MemCache 常用命令

add

添加数据,将 value(数据值) 存储在指定的 key(键) 中

命令格式

12

add key flag expiretime bytesvalue

  • key : 给这个值设置一个名字
  • flag : 标志,是一个整数
  • expiretime : 有效期,以秒为单位,0表示没有延迟
  • bytes : 这是一个需要存储在memcached的数据的长度
  • value : 是一个需要存储的数据。数据需要将通过在新的一行后输入
范例

12345678

# 添加数据add name 0 1000 8kangvcarSTORED# 如果bytes设置的长度和输入的value长度不符则出现一下错误add name 0 1000 8kangvcarrrCLIENT_ERROR bad data chunk

set

为一个新的或现有的键(key)设置一个值

命令格式

12

set key flag expiretime bytesvalue

参数含义与 add 命令相同

范例

1234

为已存在的key(name)设置一个新的值tomset name 0 1000 3tomSTORED

replace

替换已存在的 key(键) 的 value(数据值)

命令格式

12

replace key flag expiretime bytesvalue

参数含义与 add 命令相同

范例

123

replace name 0 1000 8memcacheSTORED

append

向已存在 key(键) 的 value(数据值) 后面追加数据

命令格式

12

append key flag expiretime bytesvalue

参数含义与 add 命令相同

范例

123456789

# 添加数据123到现有键name的后面append name 0 1000 3123STORED# 查看键name的值get nameVALUE name 0 11memcache123END

prepend

向已存在 key(键) 的 value(数据值) 前面追加数据

命令格式

12

prepend key flag expiretime bytesvalue

参数含义与 add 命令相同

范例

1234567

prepend name 0 1000 3456STOREDget nameVALUE name 0 14456memcache123END

gets / cas

gets 获取带有 CAS 令牌的 value(数据值) cas 执行一个”检查并设置”的操作

命令格式

1

gets key

12

cas key flags exptime bytes unique_cas_token [noreply]value

  • unique_cas_token : 通过 gets 命令获取的一个唯一的64位值
范例

123456789101112131415161718192021

# 缺少一个参数 unique_cas_token cas name 0 1000 3ERROR# unique_cas_token 不正确cas name 0 1000 3 2samNOT_FOUND# 通过 gets 命令获取唯一令牌 ==> 12gets nameVALUE name 0 8 12kangvcarEND# 使用 cas 命令更新数据cas name 0 1000 3 12samSTORED# 使用 get 命令查看数据是否更新get nameVALUE name 0 3samEND

get

获取存储在 key(键) 中的 value(数据值)

命令格式

get key

范例

12345

# 获取存储在键name的值get nameVALUE name 0 1456memcache123END

delete

删除已存在的 key(键)

命令格式

delete key

范例

12

delete ageDELETED

incr / decr

incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作

命令格式

incr key increment_value decr key increment_value

范例

123456789101112

# 添加数据add age 0 1000 215STORED# 对已存在的键(age)数字值进行自增incr age 520# 获取键age的值get ageVALUE age 0 220END

123456789101112

# 添加数据add age 0 1000 215STORED# 对已存在的键(age)数字值进行自减incr age 510# 获取键age的值get ageVALUE age 0 210END

flush_all

清理缓存中的所有数据

命令格式

flush_all [time]

  • time : (可选) 在指定时间后执行清理缓存操作范例 1 2flush_all OK

stats / stats slabs / stats sizes / stats items

stats 显示统计信息例如 PID(进程号)、版本号、连接数等 stats slabs 显示各个slab的信息,包括chunk的大小、数目、使用情况等 stats sizes 显示所有item的大小和个数 stats items 显示各个 slab 中 item 的数目和存储时长

命令格式

stats stats slabs stats sizes stats items

范例

1234567

statsSTAT pid 19700STAT uptime 3054540758STAT time 269361355STAT version 1.4.4-14-g9c660c0STAT pointer_size 64...

123456

stats slabsSTAT 1:chunk_size 96STAT 1:chunks_per_page 10922STAT 1:total_pages 1STAT 1:total_chunks 10922...

123

stats sizesSTAT 96 2END

123456789

stats itemsSTAT items:1:number 2STAT items:1:age 3054540037STAT items:1:evicted 0STAT items:1:evicted_nonzero 0STAT items:1:evicted_time 0STAT items:1:outofmemory 0STAT items:1:tailrepairs 0END

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Qt简单屏幕截图(兼容Qt4/5)
Qt4使用 QPixmap::grabWindow接口获取指定屏幕; Qt5使用QScreen 的grabWindow接口获取指定屏幕; QApplication::desktop()获取根窗口; QUuid::createUuid()产生唯一ID; pixmap.save(name)保存截图到本地. main.cpp #include <QApplication> #include <QDesktopWidget> #include <QScreen> #include <QPixmap> #includ
Qt君
2019/07/15
2.5K0
Qt截图软件3-实现矩形区域截图
首先我们先获取到当前桌面的完整图片,然后将其放到一个全屏的透明窗口之中,之后,我们在窗口上进行绘制矩形操作,然后获取到绘制的区域即可。
kdyonly
2023/03/03
1.3K0
Qt开源作品31-屏幕截图控件
屏幕截图控件在我的很多项目中都有用到,尤其是嵌入式的系统上的软件,因为在嵌入式系统中,基本上系统都很精简,甚至连UI都没有,开机之后直接运行的就是Qt程序,很多时候需要对软件进行截图保存下来,用来编写文档和介绍,还有产品彩页之类的,毕竟在板子上直接运行的效果是最好的,还有一种办法是将系统编译成win的版本,用系统的截图来,但是嵌入式上很多代码其实很不方便在win上运行,甚至没法运行,而且还要外接很多接口来得到真正的运行效果,所以还是采用直接在板子上的Qt程序中直接集成截图的功能,需要的时候直接鼠标右键弹出来选择即可。
feiyangqingyun
2020/06/09
1K0
Qt开源作品31-屏幕截图控件
Qt快捷屏幕截图
介绍两种Qt屏幕截图的方法。 方法1 接口: QPixmap QScreen::grabWindow(WId window, int x = 0, int y = 0, int width = -1, int height = -1) 示例: QScreen *screen =
Qt君
2019/07/22
1.9K0
Qt官方示例-MDI(多文档界面)
  多文档界面例子主要使用了QMdiArea类实现。下面是介绍QMdiArea的使用。
Qt君
2023/03/17
1.9K0
Qt官方示例-MDI(多文档界面)
Qt截图软件2-实现截全屏功能
创建新项目,选择Qt Widgets Application桌面应用程序,选择之后,填写项目名称,根据默认选项走下一步到创建完成即可。 主界面设计,如图所示,可按照自己的想法进行可视化设计,增加Push Button,可以为按钮添加图标,首先我们可以增加资源文件,然后把图标全部放进资源文件中,如图所示,为按钮添加图标即可。 界面设计完成之后,我们可以对按钮添加功能代码,鼠标右键→转到槽→clicked(),这样我们就可以为按钮添加点击事件了。
kdyonly
2023/03/03
4740
Qt官方示例-数字时钟
DigitalClock继承于QLCDNumber,并实现一个槽函数showTime()用来定时更新时钟显示:
Qt君
2019/12/16
1.4K0
Qt官方示例-计算器
该示例显示了如何使用信号和槽来实现计算器小部件的功能,以及如何使用QGridLayout将子小部件放置在网格中。 通过绑定不同的按钮和不同的槽函数实现计算功能。 private slots:
Qt君
2019/11/24
5920
PyQt5 截取屏幕
本篇介绍如何用 PyQt5 截屏。 下面两行是PyQt 截屏的关键代码: screen= QtWidgets.QApplication.primaryScreen()#PyQt5 screen.gra
用户6021899
2019/08/14
4.5K0
Qt官方示例-缓和曲线
❝该示例演示如何使用「缓和曲线」来控制动画的速度。❞ 关于更多 在「QtCreator软件」可以找到: 或在 以下「Qt安装目录」找到: C:\Qt\{你的Qt版本}\Examples\{你的Qt版本}\widgets\animation\easing 「相关链接」 https://doc.qt.io/qt-5/qtwidgets-animation-easing-example.html
Qt君
2023/03/17
2310
Qt官方示例-缓和曲线
Qt开源作品23-颜色拾取器
在做很多项目的UI界面的时候,相信绝大部分人都有过抄袭别人的UI界面尤其是颜色的时候,毕竟十个程序员九个没有审美,或者说审美跟一坨屎一样,大家主要的精力以及擅长点都是在写功能实现具体功能上面,这个事情怎么说呢,这确实是程序员的主要职责,但是在大部分的小公司,UI也都是需要程序员自己去搞定的,自己想不出来怎么办,借鉴咯,不知道颜色值怎么办,用颜色拾取器点一下咯。
feiyangqingyun
2020/05/29
6990
Qt开源作品23-颜色拾取器
Qt官方示例-目录视图
声明model为用于读取本地文件系统的数据模型。model.setRootPath("")将当前文件夹设置为将从其model开始读取的文件夹。QTreeView对象tree以树结构的可视化文件系统。
Qt君
2020/02/13
9580
Qt官方示例-目录视图
Qt官方示例-样式表
  样式表示例显示了如何使用Qt样式表设置窗口小部件的样式。您可以通过选择"File" >"Edit Style"来打开样式编辑器,以选择现有样式表或设计自己的样式并加载它。
Qt君
2020/07/21
1.8K0
Qt官方示例-样式表
Qt官方示例-字体采样器
❝预览系列字体的例子。❞   建立字体树显示。 QFontDatabase database; fontTree->setColumnCount(1); fontTree->setHeaderLabels(QStringList() << tr("Font")); foreach (QString family, database.families()) { const QStringList styles = database.styles(family); if (styles.i
Qt君
2023/03/17
4370
Qt官方示例-字体采样器
Qt官方示例-系统托盘
❝该示例演示如何将带有菜单的图标和弹出消息添加到桌面环境的系统托盘。 ❞   总结该示例的一些使用方法如下: 0x01 创建并显示一个系统托盘 #include <QSystemTrayIcon> Q
Qt君
2020/05/25
2.7K0
Qt官方示例-系统托盘
Qt官方示例-共享内存
  构建示例,请运行make。要运行该示例,请运行两个实例。main()函数创建一个应用程序和我们示例的Dialog类的实例。显示对话框,然后将控制以标准方式传递给应用程序。
Qt君
2023/03/17
1.3K0
Qt官方示例-共享内存
Qt开源作品11-屏幕录制控件
在平时的写作过程中,经常需要将一些操作动作和效果图截图成gif格式,使得涵盖的信息更全面更生动,有时候可以将整个操作过程和运行效果录制成MP4,但是文件体积比较大,而且很多网站不便于上传,基本上都支持gif动图,一般一个5秒左右的gif,800*600分辨率,可以很好的控制在500KB内,这样就比较完美的支持各大网站上传动图。
feiyangqingyun
2020/05/16
1.1K0
Qt开源作品11-屏幕录制控件
Qt音视频开发49-通用截图截屏
采用了回调方式的视频通道,截图只需要对解析好的QImage对象直接保存即可,而对于句柄的形式,需要调用不同的处理策略,比如vlc需要用它自己提供的api接口函数libvlc_video_take_snapshot传入保存路径即可,mpv的内核执行screenshot-to-file命令传入路径参数即可,而ffmpeg就需要设置抓拍标志位,在实时采集解析那边,如果当前是截图标志位真,则需要改成QImage转换的机制发出图片,而不是yuv的数据opengl绘制,海康的sdk调用NET_DVR_CapturePicture函数即可。
feiyangqingyun
2020/11/24
1.7K0
Qt音视频开发49-通用截图截屏
QT软件开发: 截取全屏、指定位置、当前窗口保存图片
一、环境介绍 QT : 5.12.6 操作系统: win10 x64 编译器: MinGW32 二、示例代码 头文件 #include <QScreen> #include <QTimer> connect(&timer, SIGNAL(timeout()), this, SLOT(update())); timer.start(50); 2.1 截取全屏保存为图片 void Form::update() { static int cnt=0; QScreen *screen = QGuiA
DS小龙哥
2022/01/12
1.9K0
QT软件开发: 截取全屏、指定位置、当前窗口保存图片
Qt官方示例-菜单栏
本例子介绍如何在应用程序中使用菜单栏。 创建一个菜单栏 QMenu *menu = new QMenu(this); 添加一个菜单项目(Edit) editMenu = menuBar()->add
Qt君
2020/07/29
1.4K0
Qt官方示例-菜单栏
相关推荐
Qt简单屏幕截图(兼容Qt4/5)
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档