Memcached简介

Memcached:是一个免费开源的、高性能的、具有分布式内存对象的缓存系统,它通过减轻数据库负载加速动态Web应用;

这个实在没什么好说的了,毕竟大家学过redis,数据库的数据是放到磁盘的,而不管是redis还是memcached都可以把它当做一个大大的内存条,从内存条里面读取数据肯定比从硬盘里面读取数据库要快得多。
再来看下它的特性:

  • 本质上就是一个内存key-value缓存;

  • 协议简单,使用的是基于文本行的协议;

  • 不支持数据的持久化,服务器关闭之后数据全部丢失;

  • Memcached简洁而强大,便于快速开发,上手较为容易;

  • 互不通信的Memcached之间具有分布特征 ;

  • 没有安全机制。

  • 这些特性其实就把memcached的有点缺全部说到了。

本质上是一个内存的key-value缓存这个没什么好说的,这是nosql数据库的标准特点。

协议简单,后面学了客户端的时候会了解,Redis是RESP协议,在RESP里面描述KEY的长度,KEY的值,VALUE的长度,VALUE的值,而在Memcached里面。呵呵哒,协议简单是简单,至于麻不麻烦后面学客户端同学们会有深刻的体会,在这先卖个关子。

适合和不适合的场景

再来看下memcached的使用场景,什么情况下适合用memcached什么情况下又不适合呢?

memcached适合变化频繁,查询频繁,重点是不是要入库的场景,为啥?它没法持久化。

还有就是变化不频繁,但查询频繁的数据,最后就是读多写少的场景,尤其是电商场景中用于页面数据的缓存,这是memcached适合的场景。

pv值不高,不考虑使用,什么叫pv? 就是page view页面展示次数,如果一些页面都没什么访问量就不要考虑memcached了。

变化频繁且需要入库,这个就直接不要考虑memcached了,为啥?它没法持久化呗。

再就是过大的数据不适合放在memcached中,这个也好理解。

分布式缓存产品比较


首先来看下线程模型,Redis是单进程单线程的模式,而memcached是单进程多线程,这肯定memcached性能比redis要好那么一点,这样的差距反应在QPS/TPS的比较中,不过这个差别也不是特别的大。

没错,这么一比较memcached也并不是一无是处,但这也就是memcached唯一的可圈可点之处了。

其他的基本redis超过memcached一大截。

集群比较

当然现在还讲到安装,更没讲到memcached集群,不过同学们可以先来看下,首先回顾下redis集群,不管是redis中的哨兵还是cluster集群,服务与服务直接是可以有数据的同步的,master的节点数据会通过slaveof的配置参数进行同步,如下图所示。


再来看下memcached,memcached肯定也是可以支持集群的,但他的集群仅仅体现再数据的分库中,memcached内存有限制是吧?我用多个memcached来存不就可以了。memcached节点之间是不会进行任何通信的,更别说什么master与slave机制了,他本身也不支持持久化,服务重启数据就丢了,所以高可用什么的想都不要想,他不支持,如下图所示。

数据库流行度排行


这个图是2018年的最新数据,关系型数据库就不说了,重点就来看下redis和memcached这两个nosql所在得位置,redis还不错。比较汗颜得就是memcached了。我记得2017年我就看过这数据库他排24名,现在2019年了,依然不温不火,排在24名,有点小尴尬!

Memcached安装

准备工作

在linux根目录创建soft文件夹(根据自己习惯)

mkdir /soft

在soft目录里面上传课件里面的两文件

libevent-2.1.8-stable.tar.gzmemcached-1.5.12.tar.gz

安装libevent

安装Memcached应该先安装好libevent依赖,在soft目录里面执行命令

tar -xzvf libevent-2.1.8-stable.tar.gz

进入libevent的目录,开始安装libevent

./configure -prefix=/soft/libevent
makemake install

通过上述命令,libevent已经安装到/soft/libevent目录了

安装Memcached

在soft目录解压上传的memcached

tar -zxvf memcached-1.5.12.tar.gz

注意:编译的时候需要指定动态链接库,需要linux把libevent/lib目录加载进来,下面的步骤特别重要

vi /etc/ld.so.conf

在ld.so.conf目录中增加libevent/lib所在目录,wq保存退出

增加(请根据libevent实际安装目录设置)

/soft/libevent/lib


执行下面命令让上面的修改生效

ldconfig

下面可以正式安装memcached,需要指定libevent的安装位置

./configure -prefix=/soft/memcached --with-libevent=/soft/libeventmakemake install

测试

进入memcached的安装目录下的bin目录

执行:

./memcached -h


发现有如上界面说明memcached 已经安装成功

memcached启动

memcached -m 16 -p 11211 -d -c 1024 -u root-d 选项是启动一个守护进程,-m 是分配给Memcache使用的内存数量,单位是MB,这里是1024MB,默认是64MB-u 是运行Memcache的用户,这里是root-l 是监听的服务器IP地址,默认应该是本机-p 是设置Memcache监听的端口,默认是11211,最好是1024以上的端口-c 选项是最大运行的并发连接数,默认是1024,这里设置了1024,按照你服务器的负载量来设定-P 是设置保存Memcache的pid文件位置-h 打印帮助信息-v 输出警告和错误信息-vv 打印客户端的请求和返回信息ps -ef | grep memcached 查看

集群启动

memcached 可以安装到多台机器上,安装方式与上面一样。这里就不分别安装了,就在当前的节点上启动多个memcached 实例。

memcached -m 16 -p 11212 -d -c 1024 -u rootmemcached -m 16 -p 11213 -d -c 1024 -u root

通过上面两条命令,实际又启动了2个memcached实例,加上上面启动的,总共启动了3个memcached实例

ps -ef | grep memcached 查看

停止memcached

Kill -9 端口号

什么是Memcached?相关推荐

  1. 常用的高性能 KV 存储 Redis、Memcached、etcd、Zookeeper 区别

    1. 什么是 KV 存储 KV 是 Key-Value 的缩写,KV 存储也叫键值对存储.简单来说,它是利用 Key 做索引来实现数据的存储.修改.查询和删除功能. 常用的高性能 KV 存储主要有 R ...

  2. Magent搭建Memcached集群

    原文地址:http://ultrasql.blog.51cto.com/9591438/1636374 Memcached集群介绍 由于Memcached服务器与服务器之间没有任何通讯,并且不进行任何 ...

  3. memcached和redis的区别和应用场景

    一:特性和对比 1.性能上: 性能上都很出色,具体到细节,由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比 Memcached性能更高.而在10 ...

  4. 为何Redis要比Memcached好用(转)

    转载链接:http://blog.csdn.net/renfufei/article/details/40598889 GitHub版本地址: https://github.com/cncounter ...

  5. Memcached安装使用和源码调试

    memcached官网:http://memcached.org/ 一.安装 下载 # wget http://www.memcached.org/files/memcached-1.4.25.tar ...

  6. memcache和memcached安装

    首先要明确  memcache不是memcached 第一步安装libevent #wget  https://github.com/downloads/libevent/libevent/libev ...

  7. 分享memcache和memcached安装过程

    Memcache是什么? Memcache是一个自由和开放源代码.高性能.分配的内存对象缓存系统.用于加速动态web应用程序,减轻数据库负载. 它可以应对任意多个连接,使用非阻塞的网络IO.由于它的工 ...

  8. Memcached安装以及PHP的调用

    一:安装libevent 由于memcached安装时,需要使用libevent类库,所以先安装libevent 1.下载 #wget   http://www.monkey.org/~provos/ ...

  9. Linux(centOS)手动安装Apache+MySQL+PHP+Memcached+Nginx原创无错版

    最后更新时间:2012.3.21 =================== 第一步:Apache安装(已更新到2.2.22) =================== 下载 去 http://www.ap ...

  10. Memcached在大型网站中应用

    memcached是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.最初为了加速 LiveJ ...

最新文章

  1. Python帮助Youtube打败了Google Video
  2. JS 时间戳转换成日期
  3. 写给那些在技术路上奔跑的人们!!!!!
  4. python中文编码是什么_Python编码有什么解释吗?
  5. 谷歌Android运用商铺下架染辣手机软件
  6. 合泰单片机 熔丝_合泰单片机HT66F018红外发射C程序及电路图
  7. CF767C Garland
  8. C#2.0 从sql server 中读取二进制图片
  9. QTcpSever和QTcpSocket实现多线程客户端和服务端;
  10. window下从python开始安装科学计算环境
  11. 微信小程序_阿里云api人脸识别
  12. 【秋招面试】面试准备(一面准备)
  13. C语言如何区别素数和合数,怎么快速记住100以内的素数和合数
  14. 13.大容量存储结构(磁盘管理)
  15. 奔 跑 吧 兄 弟 場 外 手 機 中 獎 活 動 是 真 的 嗎
  16. shell中sudo和su命令
  17. 排列组合问题 “n个球放入m个盒子(8种)”
  18. ARM + RISC-V双核锁步DCLS Lockstep技术总结
  19. scp或者ssh报错“no matching host key type found. Their offer: ssh-rsa,ssh-dss“
  20. 我的世界服务器java启动脚本_我的世界服务器开服bat文件分享 常见脚本

热门文章

  1. php 站内信 类
  2. Tic-Tac-Toe:基于Minimax算法的人机对弈程序(python实现)
  3. 如何使用Python抓取移动端APP的评论(小白篇)
  4. 详解C++学习方向和就业方向!
  5. CAD全称AutoCAD (全系列中文版软件+注册机下载) 2004-2020 安装视频教程
  6. pyhton第五章 字典与集合 课后习题
  7. 如何查看2020最新版谷歌地球高精度卫星地图(附下载方法)
  8. 聊天类APP功能测试总结
  9. 王道考研——计算机组成原理(第一章 计算机系统概述)
  10. LeetCode刷题——剑指offer深度优先搜索题目汇总