memcached&redis性能测试

更新时间:2023-05-18 01:01:32 阅读: 评论:0

一、Memcached
1.1、memcached简介
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器S停止运行或崩溃了,所有存放在S上的键/值对都将丢失。
Memcached由Danga Interactive开发,其最新版本发布于2010年,作者为Anatoly Vorobey和Brad Fitzpatrick。用于提升LiveJournal . com访问速度的。LJ每秒动态页面访问量几千次,用户700万。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。
1.2、Memcached是如何工作的
Memcached的神奇来自两阶段哈希(two-stage hash)。Memcached就像一个巨大的、存
储了很多<key,value>对的哈希表。通过key,可以存储或查询任意的数据。客户端可以把数据存储在多台memcached上。当查询数据时,客户端首先参考节点列表计算出key的哈希值(阶段一哈希),进而选中一个节点;客户端将请求发送给选中的节点,然后memcached节点通过一个内部的哈希算法(阶段二哈希),查找真正的数据(item)。举个列子,假设有3个客户端1, 2, 3,3台memcached A, B, C:Client 1想把数据”tuletech”以key “foo”存储。Client 1首先参考节点列表(A, B, C),计算key “foo”的哈希值,假设memcached B被选中。接着,Client 1直接connect到memcached B,通过key “foo”把数据”tuletech”存储进去。Client 2使用与Client 1相同的客户端库(意味着阶段一的哈希算法相同),也拥有同样的memcached列表(A, B, C)。于是,经过相同的哈希计算(阶段一),Client 2计算出key “foo”在memcached B上,然后它直接请求memcached B,得到数据”tuletech”。
1.3、memcached提供的操作
Memcached的客户端api接口提供了如下的方法存储和获取缓存数据,并且这节方法在不同的客户端都是一致的:
get(key):读取数据从缓存中,如果数据存在的话返回值,否则返回Null,nil,underfined。
Set(key,value [,expiry]):写入缓存数据value,如果key已经存在了就更新value值,否则就增加一个新的key/value对,如果设定了expiry值,超过设定expiry时间后键值对就失效,时间单位是秒。
Add(key,value, [,expiry]):添加键值对到缓存如果key不存在的话。
Replace(key ,value [,expiry]:替换已经存在的键值对。
Deleted(key [, time]):从缓存中删除键,如果提供一个时间,在这段时间内这个键是处于阻塞状态。
二、安装部署Memcached服务
2.1、安装libevent库
memcached使用libevent库实现网络连接服务,理论上可以处理无限多的连接,但是它和Apache不同,它更多的时候是面向稳定的持续连接的,所以它实际的并发能力是有限制的。
在保守情况下memcached的最大同时连接数为200,这和Linux线程能力有关系,这个数值是可以调整的。 关于libevent可以参考相关文档。memcachd有自己的内存分配算法和管理方式,它和共享内存没有关系,也没有共享内存的限制,通常情况下,每个memcached进程可以管理2GB的内存空间,如果需要更多的空间,可以增加进程数。
libevent下载地址:/distfiles/libevent-2.0.
什么叫管理# wget  /distfiles/libevent-2.0.
然后是正常步骤的解压安装:
# tar zxvf lilbevent-2.0.
# cd libevent-2.0.16-stable
# ./configure –prefix = /usr/local/libvent-2.0.16-stable
# make
#make install
测试libevent是否安装成功:
# ls –al /usr/local/libevent-2.0.16-stable/lib | grep libevent
修改配置文件把libevent库加入f文件
# nano /etc/f 加入/usr/local/libevent-2.0.16-stable/lib
运行 ldconfig否则运行memcached会报错,提示找不到so文件
2.2、安装memcached:
memcached下载地址:/files/memcached-1.4.
# wget  /files/memcached-1.4.
#tar memcached-1.4.
# cd memcached-1.4.13
# ./configure 
# make &make install
测试是否成功安装memcached:
2.3、编译安装magent代理:
养成教育主题班会
magent是一款开源的memcached代理服务器软件,magent是解决memcached的单点故障的解决方案;magent的hash算法:magent采用的是:Consistent Hashing原理,Consistent Hashing如下所示:首先求出memcached服务器(节点)的哈希值, 并将其配置到0~232的圆(continuum)上。 然后用同样的方法求出存储数据的键的哈希值,并映射到圆上。 然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上。 如果超过232仍然找不到服务器,就会保存到第一台memcached服务器上。

编译安装magent:
# wget  /files/magent-0.
# mkdir magent
# cd magent/
# tar zxvf magent-0.
# cd magent/
# nano magent.c 加入如下宏定义:
沉香油
(# ifndef SSIZE_MAX
# define SSIZE__MAX 32767
# endif)否则编译会报错:未指定最大值
magent.c:729: error: ‘SSIZE_MAX’ undeclared (first u in this function)
指数函数性质#/sbin/ldconfig
# d -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile
# make
# cp magent  /usr/bin/magent
测试magent代理服务器是否安装成功:
root@ubuntu:~# magent
plea provide -s "ip:port" argument
操死老师
memcached agent v0.5 Build-Date: Feb 21 2012 16:39:44
Usage:
  -h this message
  -u uid
  -g gid
  -p port, default is 11211. (0 to disable tcp support)
  -s ip:port, t memcached rver ip and port
通讯报道怎么写>交通宣传标语  -b ip:port, t backup memcached rver ip and port
  -l ip, local bind ip address, default is 0.0.0.0
  -n number, t max connections, default is 4096
  -D don't go to background
辰五行
  -k u ketama key allocation algorithm
  -f file, unix socket path to listen on. default is off
  -i number, t max keep alive connections for one memcached rver, default is 20
  -v verbo
三、memcached集群测试
3.1、测试环境
1.Memcached提供了很多客户端api,可供java,c,c++,python…的客户端的调用,在这里我们用python这门语法优雅功能强大的语言进行此次测试。
首先安装python lib库,运行如下命令:
# sudo  apt-get install python
自动安装完成后,默认版本为2.7.2。
测试是否正确安装:
接着安装这是memcached的客户端api,安装好了之后直接用python操作调用memcached。
下载地址:ftp:///pub/python-memcached/
安装如下:
# tar –zxvf
# cd python-memcached-latest
# python tup.py install
测试安装是否成功:
若 import memcache没有报错则导入无误。
2.memcached环境已经部署完毕,接下来分别在四台虚拟linux服务器上运行测试任务:
分别在四台台主机上启动配置相同的memcached服务:
在主机192.168.1.108上启动magent代理服务器:

本文发布于:2023-05-18 01:01:32,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/910500.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:客户端   安装   数据   测试
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图