memcached

Nginx基础知识04

假如想象 提交于 2020-03-03 08:13:00
案例1:构建memcached服务 1.1 问题 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的增、删、改、查操作: 安装memcached软件,并启动服务 使用telnet测试memcached服务 对memcached进行增、删、改、查等操作 1.2 方案 memcached是高性能的分布式缓存服务器,用来集中缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的响应速度。访问拓扑如图-1所示。 使用1台RHEL7虚拟机作为memcached服务器(192.168.4.5)。 在RHEL7系统光盘中包含有memcached,因此需要提前配置yum源,即可直接使用yum安装,客户端测试时需要提前安装telnet远程工具。 验证时需要客户端主机安装telnet,远程memcached来验证服务器的功能: add name 0 180 10 / / 变量不存在则添加 set name 0 180 10 / / 添加或替换变量 replace name 0 180 10 / / 替换 get name / / 读取变量 append name 0 180 10 / / 向变量中追加数据 delete name / / 删除变量 stats / / 查看状态 flush_all / / 清空所有 提示:0表示不压缩,180为数据缓存时间

通过memcached 共享session

血红的双手。 提交于 2020-03-01 17:36:14
当系统越来越大的时候,web系统可能会需要多台机器来响应用户请求,但是多台服务器因为物理的隔离,当一个用户前一个请求被响应到a机器,后面一个请求被响应到b机器,就会出现登陆态保持问题,一般解决方案有以下三种: session同步:一台机器session变化,同步到另外几台机器上,从而实现不管跳转到哪台机器上看到的session是一致的。但是同步操作复杂,一致性难以保持,占用总体内存。 有状态的跳转:就是一个用户可以通过ip,或者特定的数值来hash到固定的一台机器上。简单,但是负载均衡起到了它不应该起到的作用,负载有状态。 共享同一个session:所有系统到一个服务器上获取session。就是我的这个工具的作用,把session信息写到memcached服务器上,而不是直接写到内存里。 http://git.oschina.net/dengdai68/hsession 使用非常简单,只要把hsession.jar放到项目里,然后在web.xml加入 filter ###hsession介绍 hsession是一个解决j2ee 项目session共享问题的一个小工具,能够让同一个用户请求被转发到多台web服务器时,回话依然有效。 ###web.xml配置 <!-- 此过滤器 放在filter的最上面,否则可能 在此 filter 上面的filter 获取的session

LNMP—MemCache对PHP页面的缓存加速优化

五迷三道 提交于 2020-03-01 16:54:28
LNMP—MemCache对php页面的缓存加速优化 1. 什么是MemCache 2. MemCache的工作流程 3. 为什么要使用Memcache 4. MemCache对php页面的缓存加速优化 1. 什么是MemCache memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著 。这是一套开放源代码软件,以BSD license授权发布。 具体来讲: memcache是一个高性能的分布式的内存对象缓存系统,用于动态Web应用以减轻数据库负担。 memcache通过在内存里维护一个统一的巨大的hash表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率。 memcache是一种内存缓存技术,是一种缓存手段,要看情况来使用。 对于频繁读取,每次读取重复率高,数据更新频度低的数据,用memcache可以优化你的系统响应速度。 Memcache和memcached的区别: Memcache是这个项目的名称,而memcached是它服务器端的主程序文件名。 2. MemCache的工作流程 检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作

ubuntu下的Memcached安装与测试

ε祈祈猫儿з 提交于 2020-03-01 14:34:58
ubuntu下的Memcached安装与测试 由于memcached依赖于libevent;因此,还需要安装libevent,命令如下: sudo apt-get install libevent-dev 如果libevent无法直接安装,则到官网下载一个http://libevent.org (base) root@ubuntu:/home/shaodi/Downloads/libevent-2.1.11-stable# ./configure (base) root@ubuntu:/home/shaodi/Downloads/libevent-2.1.11-stable# make (base) root@ubuntu:/home/shaodi/Downloads/libevent-2.1.11-stable# make install 查看是否安装成功 (base) root@ubuntu:/home/shaodi/Downloads/libevent-2.1.11-stable# ls -al /usr/local/lib | grep libevent 最后安装memcached sudo apt-get install memcached 启动Memcached (base) root@ubuntu:/home/shaodi/Downloads# memcached

分享30道Redis面试题,面试官能问到的我都找到了

情到浓时终转凉″ 提交于 2020-03-01 12:40:41
1、什么是Redis?简述它的优缺点? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。 因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能。 比方说用他的List来做FIFO双向链表,实现一个轻量级的高性 能消息队列服务,用他的Set可以做高性能的tag系统等等。 另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一 个功能加强版的memcached来用。 Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。 2、Redis相比memcached有哪些优势? (1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型 (2) redis的速度比memcached快很多 (3) redis可以持久化其数据 3

J2EE集群之failover小点子

。_饼干妹妹 提交于 2020-03-01 03:42:54
J2EE集群不太了解的人首先可以看看附件里面的《解开J2EE集群的神秘面纱》, 讲的挺好的。 J2EE的服务器集群主要的就是 负载均衡 和 失败转移 这些。 负载均衡这个话题都烂大街了,随处可以找到相关的帖子或博文,我也就不谈了。 但是这些帖子中大部分都只谈了负载均衡,顶多再说一下 Tomcat 的 HttpSession 复制(失败转移的一种解决方案吧)。更有甚者,直接决定“集群中服务器节点宕机丢失的部分 HttpSession 不碍事”。。。 我的感觉就是, 像 Tomcat 的 HttpSession 交叉复制,如果集群中服务器过多对性能的影响肯定非常之大。 像 JBoss、WebLogic 等的服务器链式 HttpSession 复制,如果一个服务器节点宕机,此节点的下一个服务器节点就得负责两个服务器的用户请求。是不是有点怕人奥。 至于“集群中某个节点宕机就宕机, HttpSession 丢失无所谓”这样的观点也是挺匪夷所思的,毕竟后台中2000个 HttpSession 同时丢失的后果不是那么容易承担的。 为了解决上面这些问题,我自己琢磨了一套方案,感觉挺不错的(不知道网上是不是有类似“轮子”,反正我是没有搜索到)。 就发出来共享一下,嘿嘿 我想到的是 缓存服务器和Web服务器双向备份HttpSession ,这个。。。。咱语文挺烂的,表达的不好。

#研发解决方案#discache-分布式缓存查询与管理系统

戏子无情 提交于 2020-02-28 23:06:07
郑昀 基于马海元和闫小波的文档 关键词: memcached 、redis、分布式缓存、控制台、反序列化、Java 本文档适用人员:研发和运维员工 提纲: 如何查看缓存里的序列化数据? 批量删除来一个 监控每个缓存端口的访问情况是很有必要的 discache 解决了这些问题 电商系统的分布式缓存一般是 redis 和 memcached 集群,每一个节点上会起很多实例,因为一个业务类型对应于一个端口,拆分得很清楚。既然节点很多,端口很多,业务也在变化,随时都有变动,如何管理呢?当然,最迫切的需求是下面这个,不解决的话就会很麻烦。 0x01.如何查看缓存里的序列化数据? Java 工程通常 把类实例对象序列化后存储在缓存里 。其次,不同端口存的类对象还不一样。最后,类对象还有版本之分,你手头不见得有正确的线上版本 class 文件来反序列化。 总之,当你想看看键值里存的是什么内容时,会非常麻烦,所以我们迫切需要一个系统。 0x02.批量删除来一个 有时候线上缓存数据想按某个规则删掉一批,没有一个趁手的工具的话,那遇到急茬儿事还真是手忙脚乱,尤其是有时候上线预热数据预热错了的时候。假如能按照某个通配符规则批量删除,善莫大焉。 0x03.监控每个缓存端口的访问情况是很有必要的 慢日志 : redis 支持各种数据结构,还支持模糊查询,所以容易在线上出现慢查询。因此

memchaced安装、启动、卸载

妖精的绣舞 提交于 2020-02-27 20:53:54
1.以管理员身份运行黑窗口 输入:cd /d D:\lpxSoft\memcached\memcached-win64 2.进入到memecached文件夹 输入:memcached.exe -d install 无任何其他提示,即安装成功 3,启动memached 输入:memcached.exe -d start 4,卸载 在卸载memcached以前,要先停止其启动,否则会出现如下问题: 通过在命令行窗口执行“memcached.exe -d stop”即可将memcached置于停用状态,如下图: 在命令行窗口执行“memcached.exe -d uninstall”即可将memcached卸载下来。 来源: oschina 链接: https://my.oschina.net/u/3748375/blog/3165062

memcached、cookie、session

不羁的心 提交于 2020-02-27 07:05:47
Memcached(一个高性能的分布式的内存对象缓存系统)   可用来分担数据库的压力。通过在内存里维护一个统一的巨大的hash表,memcached能存储各种各样的数据,包括图像、视频、文件、以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。 适用:存储验证码(图形验证码、短信验证码)、登录session等所有不是至关重要的数据。 安全性: 使用 -l 参数设置为只有本地可以连接:这种方式,就只能通过本机才能连接,别的机器都不能访问,可以达到最好的安全性。 使用防火墙,关闭11211端口,外面也不能访问。 django中使用需在 settings.py 中配置好缓存; 添加 KEY_FUNCTION 参数:django在存储数据到memcached中的时候,可自定义前缀。 1 # 配置memcached缓存; 2 CACHES = { 3 'default': { 4 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 5 # 可指定多个连接:['172.19.26.240:11211','172.19.26.242:11211',] 6 'LOCATION': '127.0.0.1:11211', 7 'KEY_FUNCTION': lambda key

redis, memcache性能比较

ぐ巨炮叔叔 提交于 2020-02-26 09:59:41
1、性能 都比较高 总体来讲,TPS方面redis和memcache差不多 2、操作的便利性 memcache数据结构单一; redis丰富一些,数据操作方面,redis更好一些,较少的网络IO次数 3、内存空间的大小和数据量的大小 redis在2.0版本后增加了自己的VM特性,突破物理内存的限制;可以对key value设置过期时间(类似memcache) memcache可以修改最大可用内存,采用LRU( 最近最久未使用 )算法 4、可用性(单点问题) 对于单点问题, redis,依赖客户端来实现分布式读写;主从复制时,每次从节点重新连接主节点都要依赖整个快照,无增量复制,因性能和效率问题, 所以单点问题比较复杂;不支持自动sharding,需要依赖程序设定一致hash 机制。 一种替代方案是,不用redis本身的复制机制,采用自己做主动复制(多份存储),或者改成增量复制的方式(需要自己实现),一致性问题和性能的权衡 Memcache本身没有数据冗余机制,也没必要;对于故障预防,采用依赖成熟的hash或者环状的算法,解决单点故障引起的抖动问题。 5、可靠性(持久化) 对于数据持久化和数据恢复, redis支持(快照、AOF):依赖快照进行持久化,aof增强了可靠性的同时,对性能有所影响; memcache不支持,通常用在做缓存,提升性能; 6、数据一致性(事务支持)