memcached

分布式缓存的应用场景、选型比较、问题和挑战

谁说胖子不能爱 提交于 2019-12-16 16:03:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 为什么要使用分布式缓存 高并发环境下,例如典型的淘宝双11秒杀,几分钟内上亿的用户涌入淘宝,这个时候如果访问不加拦截,让大量的读写请求涌向数据库,由于磁盘的处理速度与内存显然不在一个量级,服务器马上就要宕机。从减轻数据库的压力和提高系统响应速度两个角度来考虑,都会在数据库之前加一层缓存,访问压力越大的,在缓存之前就开始CDN拦截图片等访问请求。 并且由于最早的单台机器的内存资源以及承载能力有限,如果大量使用本地缓存,也会使相同的数据被不同的节点存储多份,对内存资源造成较大的浪费,因此,才催生出了分布式缓存。 分布式缓存应用场景 页面缓存:用来缓存Web 页面的内容片段,包括HTML、CSS 和图片等。 应用对象缓存:缓存系统作为ORM 框架的二级缓存对外提供服务,目的是减轻数据库的负载压力,加速应用访问。 解决分布式Web部署的session同步问题 状态缓存:缓存包括Session会话状态及应用横向扩展时的状态数据等,这类数据一般是难以恢复的,对可用性要求较高,多应用于高可用集群。 并行处理:通常涉及大量中间计算结果需要共享。 云计算领域提供分布式缓存服务。 分布式缓存比较:Memcache VS Redis 1、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset

Redis和Memcached的优劣比较

喜夏-厌秋 提交于 2019-12-16 15:52:54
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Redis 是一个功能强大、性能高效的开源数据结构服务器, Redis 最典型的应用是 NoSQL 。但事实上 Redis 除了作为 NoSQL 数据库使用之外,还能广泛应用消息队列,数据堆栈以及数据缓存等众多场合。 Redis 与 Memcached 相类似,都是以键值对( key-value )存放数据的,但是 Redis 支持的数据类型及特性远比 Memcached 丰富。 在缓存应用方面, Redis 同样也是一个内存数据库,拥有 Memcached 的快速、稳定等特性,并且支持数据快照功能,开发人员可以通过配置文件制定数据快照时间间隔, Redis 会将数据快照自动存放于硬盘中,这样就算服务器突然停止服务, Redis 也极少会出现丢失数据的现象。所以近些年来越来越多的大型物联网公司开始使用 Rdeis 作为缓存服务器。 相比于 MongoDB , Redis 是更加彻底的 Key-Value 存储系统,它没有专门的查询语言,也没有明确的数据类型。一个字符串,可以代替所有的储存类型,例如直接使用 string 类型存放传统文本、代码、序列等;也可以直接存放数据流,例如图片、视频等,并且没有数据大小的限制。虽然没有数据类型的限制,单位了方便数据管理, Redis 提供了多种数据结构类型,分别为

Linux配置SVN和MemCached

牧云@^-^@ 提交于 2019-12-16 14:39:26
SVN   Linux安装svn   yum -y install subversion(安装svn)   mkdir -p /svndata/projects/easyBuy   svnadmin create /svndata/projects/easyBuy(创建svn)   cd /svndata/projects/easyBuy/conf(修改配置文件)   vi authz(添加用户)        vi passwd(创建密码)        vi svnserve.conf(设置权限)                  svnserve -d -r /svndata(启动svn;-d:后台执行,-r:版本库的根目录)   iptables -I INPUT -p tcp --dport 3690 -j ACCEPT   service iptables save(开启svn默认端口)   MyEclipse添加svn   将 site-1.10.13-1.9.x 中的如下文件复制到:                  提交/上传项目    MemCached   Linux安装MemCached和Telnet   yum -y install memcached(安装Memcached)   memcached -u root -d -m 1024 -p 11211

PHP - windows下编译PHP 7.2的memcache

那年仲夏 提交于 2019-12-16 11:06:07
概述 PHP 7.2出来有一段时间了,不出意料,memcache又不能用了,于是又想到要自己动手编译,不过与我编译PHP 7.1的memcache的时候相比,有个好消息是已经有人把PHP 7.1和7.2 的memcache都编译好并放在github上了,需要的可直接去那里下载,我这篇文章就不提供下载了: https://github.com/nono303/PHP7-memcache-dll 注:这里还是要强烈吐槽一下百度,以“php 7.2 memcache”为关键字,完全搜索不到任何有用的东西,上面那个网址我是用google一下子就搜到了,而且还受到启发,顺利的把编译过程给搞定,所以搞开发的遇到技术问题,还是不要在百度上浪费生命了。 我下面还是把我研究出来的PHP 7.2 memcache的编译方法写出来,给有需要的人做个参考吧。 PHP 7.2的memcache编译方法跟之前版本有了一些变化,主要体现在: PHP SDK的下载路径与编译方式发生了改变; PHP 7.2的memcache要使用VC15编译; 下载文件 编译前需要下载如下文件: 编译环境: PHP-memcached是用VC15编译的,因为并不常用VC15,所以到微软的官网上下载visual studio 2017 entrpise的试用版即可。 地址: https://www.visualstudio.com

学习linux的第五十八天

China☆狼群 提交于 2019-12-16 02:16:09
Memcached命令行 telnet 127.0.0.1 11211 连接 ctrl ] 退出 set key2 0 30 2 set用来存储数据,key2是key的名字(可以自定义),30代表过期时间(单位秒), 2表示要存的数值为2个字节 get key2 获取数值是否存储成功使用get 加 key的名字 如果定义了3个字节,但是输入了两个字节,会报错 replace key3 1 0(永远不过期) 5 替换 delete key3 删除 \r\n \r\n 注:\r\n在windows下是Enter键 可以是set, add, replace set表示按照相应的存储该数据,没有的时候增加,有的时候覆盖 add表示按照相应的添加该数据,但是如果该已经存在则会操作失败 replace表示按照相应的替换数据,但是如果该不存在则操作失败。 客户端需要保存数据的key (即上面key名称后面的0)是一个16位的无符号的整数(以十进制的方式表示)。该标志将和需要存储的数据一起存储,并在客户端get数据时返回。客户端可以将此标志用做特殊用途,此标志对服务器来说是不透明的。 为过期的时间。若为0表示存储的数据永远不过期(但可被服务器算法:LRU 等替换)。如果非0(unix时间或者距离此时的秒数),当过期后,服务器可以保证用户得不到该数据(以服务器时间为标准)。 需要存储的字节数

搭建Memcache服务详解

不羁的心 提交于 2019-12-15 00:09:59
博文大纲: 一、Memcache简介 二、Memcache工作流程 三、Memcache调度算法 四、Memcache实现原理 五、安装Memcache (1)安装nginx服务器 (2)安装PHP服务器 (3)安装MySQL数据库 (4)测试PHP与Nginx、MySQL的连通性 (5)安装Memcache服务器 (6)PHP服务器安装Memcache客户端 (7)使用 memcache 实现 session 共享 (8)测试Memcache缓存数据库 一、Memcache简介 Memcache是一套自由、开源、高性能、分布式的高速缓存系统。由于Memcache通过在内存中缓存数据和对象来减少读取数据库的次数。目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。 Memcache是一个存储键值对的HashMap,在内存中对任意的数据都可以使用key-value的方式存储,数据库可以来自数据库调用或API调用。Memcache设计理念就是小而强大,她简单的设计促进了快速部署、易于开发并解决大规模的数据缓存的许多难题,而其所开放的API使得Memcache能用于Java、C/C++/C#、Perl、Python等大部分流行的程序语言。 二、Memcache工作流程 注意Memcache虽然被称为“分布式缓存”

Memcached 主主复制 + Keepalived 高可用架构【附上原理】

妖精的绣舞 提交于 2019-12-14 23:32:42
目录: 1·Memcached 主主复制概念 2·Memcached 高可用的实现 3·案例部署 4·总结 Memcached 主主复制概念 (1)主主复制概念: Memcached 主主复制是指在任意一台 Memcached 服务器修改数据都会被同步到另外一台,但是 Memcached API 客户端无法判断连接到那一台 Memcached 服务器,所有需要设置 VIP 地址,提供给 Memcached API 客户端进行连接。 (2)文章推荐: 知道了主主复制,那么需要了解 Memcached 是什么,还有一些最基本的情况,比如: 1) Memcached 功能 2)Memcached 特征 3)Memcached 储存方式 可以看看上篇文章 Memcached 高性能缓存对象 Memcached 高可用的实现 (1)怎么实现 Memcached 的高可用 1)这里就需要牵扯到主主复制的概念了,因为Memcached 主主复制这种架构,在程序连接的时候不会知道应该连接哪一个主服务器,所以需要在前端加上 VIP 地址,实现高可用架构。这里可以用 Keepalived 实现,所以说,Keepalived 的作用就是来检测 Memcached 服务器的状态是否正常。 2)Keepalived 会不断的检测 Memcached 主服务器的 11211端口,如果检测到 Memcached

Memcached安装及数据库操作管理

橙三吉。 提交于 2019-12-14 22:24:42
安装案例 认识Memcached认识Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。 使用2台CentOS7系统完成,一台 Memcached 服务器,一台基于LAMP架构进行的 Memcache客户端 Memcached特征 memcached作为高速运行的分布式缓存服务器,具有以下的特点。 1.协议简单 2.基于libevent的事件处理 3.内置内存存储方式 4.memcached不互相通信的分布式 存储方式 为了提高性能,memcached中保存的数据都存储在memcached内置的 内存 存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于 LRU (Least Recently Used)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。 缓存机制 案例 使用2台CentOS7系统完成,一台Memcached服务器

PHP的本地Session信息 部署memcached

微笑、不失礼 提交于 2019-12-14 19:49:00
一.PHP的本地Session信息 实验文件文件链接https://www.lanzous.com/i80k78d 问题 通过Nginx调度器负载后端两台Web服务器,实现以下目标: 部署Nginx为前台调度服务器 调度算法设置为轮询 后端为两台LNMP服务器 部署测试页面,查看PHP本地的Session信息 方案 概念: Session:存储在服务器端,保存用户名、登陆状态等信息。 Cookies:由服务器下发给客户端,保存在客户端的一个文件里。 保存的内容主要包括:SessionID。 实验拓扑环境: 使用4台RHEL7虚拟机,其中一台作为Nginx前端调度器服务器(eth0:192.168.4.5,eth1:192.168.2.5)、两台虚拟机部署为LNMP服务器,分别为Web1服务器(192.168.2.100)和Web2服务器(192.168.2.200),另外一台作为测试用的Linux客户机(192.168.4.10),拓扑如图所示。 1.3 步骤 实现此案例需要按照如下步骤进行。 部署后端LNMP服务器相关软件 注意:以下部署LNMP服务器的操作,需要在两台后端服务器做相同的操作,下面我们以一台Web2服务器(192.168.2.200)为例,对Web1服务器执行相同操作即可。 使用yum安装基础依赖包 [root@web2 ~] # yum -y install

memcache won't store key/value because the value is too big

≯℡__Kan透↙ 提交于 2019-12-14 02:00:19
问题 cache.set(key, Biglist, 3600) print cache.get(key) When my "Biglist" is a huge list of lots of content, it doesn't seem to store. But when I change it to small text like "abc", it stores. What do I have to configure so that I can set my memcache to accept unlimited size of key/value? 回答1: See What is the maximum data size you can store section in the FAQ. What is the maximum data size you can store? (1 megabyte) The maximum size of a value you can store in memcached is 1 megabyte. If your