linux 下安装memcached并启用SASL功能
memcached是基于libevent的事件处理
libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。而且libevent在使用上可以做到跨平台,而且根据libevent官方网站上公布的数据统计,似乎也有着非凡的性能
欲了解更更多关于libevent:http://monkey.org/~provos/libevent/
启用SASL验证机制
SASL全称Simple Authentication and Security Layer,是一种用来扩充C/S模式验证能力的机制。
简单来说SASL是一个胶合(glue)库,通过这个库把应用层与形式多样的认证系统整合在一起。这有点类似于 PAM,但是后者是认证方式,决定什么人可以访问什么服务,而SASL是认证过程,侧重于信任建立过程,这个过程可以调用PAM来建立信任关系。在这里Memcached就是上面提到的应用层,具体的认证交给SASL库,SASL会根据相应的认证机制来完成验证功能。
默认情况下,Red Hat Enterprise Linux安装程序会自动安装Cyrus-SASL认证包。可使用下面的命令检查系统是否已经安装了Cyrus-SASL认证包或查看已经安装了何种版本。
?
# 服务器节点:形如:"主节点1:port,备份节点1:port 主节点2:port,备份节点2:port"的字符串,#可以不设置备份节点,主备节点逗号隔开,不同分组空格隔开#由于该应用功能是加载数据,可以只考虑分布式,即以空格分隔ip的配置方式,不考虑主备关系#举例如:servers=10.1.4.7:11200 10.1.4.7:11211servers=10.1.4.7:11200# 与servers对应的节点的权重,格式同服务器节点,权重是用来调节memcached的负载,设置的权重越高,该memcached节点存储的数据将越多,所承受的负载越大。weights=4#nio连接池大小,默认对一个memcached节点只有一个连接,这在通常情况下已经有非常优异的表现。但是在典型的高并发环境下,nio的单连接也会遇到性能瓶颈。可通过调整连接池数量,允许建立多个连接到同一个memcached节点,但是请注意,这些连接之间是不同步的,因此你的应用需要自己保证数据更新的同步connectionPoolSize=1#授权验证信息:形如:#"主节点1用户名:密码,备份节点1用户名:密码 主节点2用户名:密码,备份节点2用户名:密码"的字符串#与服务器节点个数一致,密码不允许有空格与:#举例如:authInfo=user1:pwd1 user2:pwd2,此处的用户名密码memcached服务器主机的linux操作系统的用户名密码,且必须被添加到可访问memcached服务用户列表中,此处使用上面配置的用户portaluserauthInfo=portaluser:portaluserpassword#密码校验机制(SASL认证机制)SASL_Mechanisms=PLAIN# 协议工厂net.rubyeye.xmemcached.command.BinaryCommandFactory(二进制),#TextCommandFactory(文本),KestrelCommandFactory(可靠获取),本应用配置二进制方式 commandFactory=net.rubyeye.xmemcached.command.BinaryCommandFactory# 分布策略,一致性哈希(用于增加主机时降低未命中率问题的解决)net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator#或者ArrayMemcachedSessionLocator(默认) ,默认分布的策略是按照key的哈希值模以连接数得到的余数,对应的连接就是将要存储的节点,本应用只需使用默认策略即可。sessionLocator=net.rubyeye.xmemcached.impl.ArrayMemcachedSessionLocator# 序列化转换器,默认使用net.rubyeye.xmemcached.transcoders.SerializingTranscoder transcoder=net.rubyeye.xmemcached.transcoders.SerializingTranscoder# IoBuffer分配器(内容写入memcached时的内存控制策略),默认为net.rubyeye.xmemcached.buffer.SimpleBufferAllocator,#可选CachedBufferAllocator(不推荐)bufferAllocator=net.rubyeye.xmemcached.buffer.SimpleBufferAllocator # 是否启用failure模式,true为启用,默认不启用。所谓failure模式是指,当一个memcached节点down掉的时候,发往这个节点的请求将直接失败,而不是发送给下一个有效的memcached节点。failureMode=false
?
剩下的就是启动客户端连接服务器,并添加或读取数据.