memcached集群部署架构
该部署方式依赖于magent实现高可用,应用端通过负载均衡服务器连接到magent,然后再由magent代理用户应用请求到memcached处理,底层的memcached为双主结构会自动同步数据,本部署方式存在magent单点问题因此需要两个magent做高可用。
MemCache缓存与Session(知识汇总)
memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。
php中文网学习专题:php session (包含图文、视频、案例)
MemCache的工作流程如下:
● 先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;
● 如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现);
● 每次更新数据库的同时更新memcached中的数据,保证一致性;
利用memcahe来处理缓存和php的session 是非常不错的选择。
下面给大家总结讲解memcahe的工作原理、安装及php对缓存的操作。
一、《MemCache介绍》
memcached 是以LiveJournal旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal 等众多服务中提高Web应用扩展性的重要因素...
详细点击:memcache是什么?-php教程-PHP中文网
二、《安装memcache服务》
memcache 支持windows、linux等各类操作系统...
详细点击:安装memcache服务-windows运维-PHP中文网
三、《开启php的memcache扩展》
php默认情况下并没有开启的memcache扩展...
详细点击:如何开启php的memcache扩展?-php教程-PHP中文网
四、《PHP操作Memcache缓存》
安装好了memcache服务和php的扩展,我们就可以使用php去操作memcache来实现缓存啦!
PHP的Memcache客户端所有方法总结...
详细点击:PHP如何操作Memcache缓存?-php教程-PHP中文网
五、《使用memcache来保存session》
默认情况下session以文件形式保存在服务器端,当我们遇到大访问量、高并发时我们会对web服务器进行集群化处理。那么不同服务器之间的session共享会成为一个问题...
详细点击:使用memcache来保存session-php教程-PHP中文网
六、《memcache图形化管理工具MemAdmin》
保存好了变量,我们经常想看看他们的值或者检测他们的状态。通过命令行我们可以完成这样的操作。但是命令行比较难懂,给大家介绍一款memcache图形化管理工具: MemAdmin...
详细点击:memcache图形化管理工具MemAdmin-php教程-PHP中文网
七、《memcache安全相关》
memcache本身没有权限控制模块,所以开放在外网的memcache服务很容易被攻击者扫描发现,通过命令交互可直接读取memcache中的敏感信息...
八、《ASP.NET中MemcacheHelper封装》
using Memcached.ClientLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HOPU.Common
{
public class MemcacheHelper
{
private static readonly MemcachedClient mc = null;
static MemcacheHelper()
{
//最好放在配置文件中
string[] serverlist = { "127.0.0.1:11211", "10.0.0.132:11211" };
//初始化池
SockIOPool pool = SockIOPool.GetInstance();
pool.SetServers(serverlist);
pool.InitConnections = 3;
pool.MinConnections = 3;
pool.MaxConnections = 5;
pool.SocketConnectTimeout = 1000;
pool.SocketTimeout = 3000;
pool.MaintenanceSleep = 30;
pool.Failover = true;
pool.Nagle = false;
pool.Initialize();
// 获得客户端实例
mc = new MemcachedClient();
mc.EnableCompression = false;
}
/// <summary>
/// 存储数据
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
public static bool Set(string key,object value)
{
return mc.Set(key, value);
}
public static bool Set(string key, object value,DateTime time)
{
return mc.Set(key, value,time);
}
/// <summary>
/// 获取数据
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static object Get(string key)
{
return mc.Get(key);
}
/// <summary>
/// 删除
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static bool Delete(string key)
{
if (mc.KeyExists(key))
{
return mc.Delete(key);
}
return false;
}
}
}
九、MemAdmin 基于 PHP5 & JQuery 的 Memcached 管理监控工具
MemAdmin是一款可视化的Memcached管理与监控工具,使用PHP开发,体积小,操作简单。
主要功能:
- 服务器参数监控:STATS、SETTINGS、ITEMS、SLABS、SIZES实时刷新
- 服务器性能监控:GET、DELETE、INCR、DECR、CAS等常用操作命中率实时监控
- 支持数据遍历,方便对存储内容进行监视
- 支持条件查询,筛选出满足条件的KEY或VALUE
- 数组、JSON等序列化字符反序列显示
- 兼容memcache协议的其他服务,如Tokyo Tyrant (遍历功能除外)
- 支持服务器连接池,多服务器管理切换方便简洁
redis/memcache监控管理工具——treeNMS
TreeNMS可以帮助您搭建起一套用于redis的监控管理系统,也支持Memcached,让您可以通过web的方式对数据库进行管理,有了它您就可以展示NOSQL数据库、编辑修改内容,另外还配备了sql语法帮助,让您的管理工作更加轻松。
一、安装
可以到TreeNMS数据库管理工具|TreeNMS(Redis监控管理工具)下载 V1.4.8 官方版 - 比克尔下载路径下下载1.4.8版本,然后将以上四个文件拷贝来用。(新版本增加了对多个memcache实例的支持,切性能更好了)
treeNMS采用JAVA开发,基于WEB方式对memcache管理,windows环境下载解压即可使用,Linux环境中也只需将软件复制过去,OSX系统中也可以直接复制过去用,前提是配置好JAVA环境。因为是基于WEB方式的,所以可以直接在服务器上布署一份,那么大家都可以用浏览器直接访问操作,避免了每个开发人员、测试人员、运维人员都要安装工具软件的麻烦,工作效率大大提高。
下面是具体安装步骤:
1、安装前环境准备:jdk,tomcat都已经安装(tomcat的部署可以参考https://www.cnblogs.com/zhangwuji/p/9335790.html);rar软件已经安装,可以使用unrar x xxx.rar (注意不要用unrar e)解压.rar文件;
2、将treeNMS.rar文件下载并拷贝到linux中;
3、用unrar x xxx.rar 解压treeNMS.rar文件;
4、进入bin目录下,对启动脚本添加执行权限:运行chmod 777 *.sh命令
5、运行./startup.sh命令
6、登录网址:服务器地址:8085/treenms,用户名和密码在解压包的《说明.txt》文件中。效果如下图所示:
二、功能简介
1、NoSQL数据在线查看
点击左侧的库表,将打开数据列表,系统对数据进行分页,格式化输出,方便查看。
2、NoSQL数据 在线编辑维护
选择左侧库表后,将直接展示数据。可通过新增、编辑、删除按钮对表数据进行维护,操作十分方便。
3、JSON 格式化
支持 JSON 数据的格式化输入,展示,层级缩进,收缩,控制。
4、数据备份还原
支持 Redis 数据的备份还原操作, 不支持 Memcached,备份文件可以在线直接下载。
5、SQL语法的帮助
系统整合了一些常用的 SQL 语法帮助信息,可以选择并查看相应的语句,选择后语法信息将展示。
6、皮肤配色的选择
系统内置14套UI皮肤,可自由设置组合,深色的屏幕有助保护视力。
7、系统参数配置
数据库类型,数据库连接地址,端口,帐户,密码等信息直接设置生效,切换方便。
8、用户密码修改
系统提供独立的用户管理,该用户与数据库无关,密码也与数据库无关。