安装Memcached
[root@nginx ~]# yum -y install libevent memcached
指定用户大小等信息,工作环境中常指定大小一般为4到8G,此信息测试使用。
[root@nginx ~]# memcached -u root -m 120M -n 10 -f 2 -d -vvv -c 120
 
一些选项意思:
-h  #查看帮助信息
-p  #指定memcached监听的端口号,默认11211
-l   #memcached程序运行时使用的用户身份必须是root用户
-m #指定使用本机的多少物理内存存取数据默认64M
-c   #memcached服务的最大连接数
-vvv #显示详细信息
-n  #chunk size的最小空间是多少单位字节
-f   #chunk size大小增长的倍数默认1.25倍
-d  #在后台启动、
 
安装一个telnet软件来进行测试memcached的存取是否正常
[root@nginx ~]# yum -y install telnet

[root@nginx ~]# telnet 192.168.200.111 11211
Trying 192.168.200.111...
<30 new auto-negotiating client connection
Connected to 192.168.200.111.
Escape character is '^]'.
set username 0 0 8
zhangsan
get username
...
>30 END
VALUE username 0 8
zhangsan
END
quit
读取了测试存储的名字,说明memcached的工作状态应该是正常的

然后创建一个session的文件夹,进入其中把对应的jar包放进去,与tomcat版本有关
然后把session包中的*.jar复制到tomcat安装目录下的lib下
cp session/*.jar /usr/local/tomcat/lib/
然后编辑tomcat配置文件,使tomcat可以连接memcached服务器
 vim /usr/local/tomcat/conf/context.xml 自己安装目录下的conf下的context.xml文件
在Context标签中添加一些内容   其中的IP改为自己的Memcached服务器的IP和端口
<Context>
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="memA:192.168.36.129:11211 memB:192.168.36.170:11211"
requestUrilgnorePattern=".*\(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
</Context>
然后重启tomcat服务,然后测试访问。如果刷新Tomcat服务器出现变化,sessionID不发生变化就成功了
Session服务器之Redis
Redis与Memcached的区别
*内存利用率:使用简单的key-value(键值对)存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
* 性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。
* Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
* Redis支持数据的备份,即master-slave模式的数据备份。
* Redis不仅仅支持简单的key-Value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
安装部署redis
[root@node1 ~]# tar xf redis-3.2.5.tar.gz -C /usr/src/
[root@node1 ~]# cd /usr/src/redis-3.2.5/
[root@node1 redis-3.2.5]# make
//这里如果报错:tclsh8.5: not found 发现少了tcl 报错,则安装tcl
wget http://downloads.sourceforge.net/tcl/tcl8.5.9-src.tar.gz
cd /tcl8.5.9-src/unix
./configure
make && make install//
接着make就没报错了
[root@node1 redis-3.2.5]# mkdir -p /usr/local/redis/{bin,etc,var}
[root@node1 redis-3.2.5]# cd src/
src目录下这些文件作用如下
* redis-server:Redis服务器的daemon启动程序
* redis-cli:Redis命令行操作工具.你也可以用telnet根据其纯文本协议来操作
* redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
* redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况
[root@node1 src]# cp redis-benchmark  redis-check-aof redis-cli redis-server  /usr/local/redis/bin/
[root@node1 redis-3.2.5]# cp ../redis.conf  /usr/local/redis/etc
[root@node1 redis-3.2.5]# vim /usr/local/redis/etc/redis.conf //修改配置文件
daemonize no  改为 daemonize yes  //是否把redis-server启动在后台,默认是“否”。若改成yes,会生成一个pid文件
bind 127.0.0.1  改为 bind 0.0.0.0   //任意主机都可访问
其他的看需要修改
关闭redis:
[root@node1 redis-3.2.5]# killall -9 redis-server
启动redis:
[root@node1 redis-3.2.5]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
查看是否启动:
[root@node1 redis-3.2.5]# netstat -anpt |grep redis
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      77526/redis-server 
监控redis共享session:
[root@node1 redis-3.2.5]# /usr/local/redis/bin/redis-cli -p 6379  monitor
1555299973.187326 [0 192.168.200.113:44980] "EXPIRE" "29C6E0F087C504F4C90BBEAE924F20DD" "1800"
......
将tomcat需要调用redis的jar包放入tomcat/lib
[root@node1 redis-3.2.5]# cp tomcat-redis-session-manage-tomcat7.jar tomcat-juli.jar commons-logging-1.1.3.jar commons-pool2-2.2.jar jedis-2.5.2.jar /usr/local/tomcat/lib
修改context.xml文件以支持调用redis
[root@node1 redis-3.2.5]# vim /usr/local/tomcat/conf/context.xml
在Context段中加入以下内容
<Context>
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
  <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" 
host="192.168.200.112"   //redis的IP地址
port="6379"      //redis的端口
database="0" 
maxInactiveInterval="60" />
</Context>
重启tomcat服务
[root@node1 ~]# /usr/local/tomcat/bin/shutdown.sh
[root@node1 ~]# /usr/local/tomcat/bin/startup.sh
 

Session服务器之Memcached与Redis的更多相关文章

  1. Session服务器之Memcached

    材料:两台Tomcat(接Session复制一起做) 第一台Tomcat:IP为130 [root@localhost ~]# yum install libevent memcached -y    ...

  2. Session服务器之Redis

    Session服务器之Redis Redis与Memcached的区别内存利用率:使用简单的key value (键值对)存储的话,Mermcached 的内存利用率更高,而如果Redis采用hash ...

  3. Session服务器之Session复制!

    全部运行在Tomcat下 第一台主机:192.168.200.131  安装nginx 修改hosts文件 [root@localhost ~]# vim /etc/hosts 192.168.200 ...

  4. memcached与redis 对比

    一. 综述 读一个软件的源码,首先要弄懂软件是用作干什么的,那memcached和redis是干啥的?众所周知,数据一般会放在数据库中,但是查询数据会相对比较慢,特别是用户很多时,频繁的查询,需要耗费 ...

  5. memcached与redis实现的对比

    版权声明:本文由田京昆原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/129 来源:腾云阁 https://www.qclo ...

  6. Python操作memcached及redis

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  7. 各种缓存(Memcached、Redis、RabbitMQ、SQLlchemy)

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  8. Memcached、Redis、RabbitMQ

    目录 一.Memcached 二.Redis 三.RabbitMQ Memcached Memcache 是一个开源.高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中 ...

  9. 模块-Memcached、Redis

    目录 Mecache 安装 使用 Redis 安装 Python操作Redis 操作模式 连接池 操作 String Hash List Set sort set 其他常用操作 管道 发布订阅 sen ...

随机推荐

  1. Java集合--Map总结

    转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3311126 第1部分 Map概括 (01) Map ...

  2. 012_STM32程序移植之_内部flash开机次数管理lib库建立

    012_STM32程序移植之_内部flash开机次数管理lib库建立 1. 测试环境:STM32C8T6 2. 测试接口: 3. 串口使用串口一,波特率9600 单片机引脚------------CH ...

  3. sql server 存储过程和视图的区别

    视图 要把视图看做是一张表,包含了一张表的部分数据或者多个表的综合数据,视图的使用和普通表一样: 视图建立并存储在服务器,有效减少网络数据流量,提高安全性: 视图中不存放数据,数据依然存放在视图引用的 ...

  4. python print import使用

    >>> print("aaaa","bbbb")aaaa bbbb>>> print(1, 2, 3)1 2 3 为模块提供 ...

  5. 一些特殊的矩阵快速幂 hdu5950 hdu3369 hdu 3483

    思想启发来自, 罗博士的根据递推公式构造系数矩阵用于快速幂 对于矩阵乘法和矩阵快速幂就不多重复了,网上很多博客都有讲解.主要来学习一下系数矩阵的构造 一开始,最一般的矩阵快速幂,要斐波那契数列Fn=F ...

  6. 关于slf4j log4j log4j2的jar包配合使用的那些事

    由于java日志框架众多(common-logging,log4j,slf4j,logback等),引入jar包的时候,就要为其添加对应的日志实现.. 不同的jar包,可能用了不同的日志框架,那引用了 ...

  7. javascript--特权方法

    在Javascript--闭包一节中我们讲解了闭包的作用域和作用域链的特性.了解到在外部一般是不可能访问到内部作用域中的变量的,然而通过闭包我们可以定义特权方法访问私有变量.下面先介绍块级作用域再介绍 ...

  8. mxnet快速入门教程

    前段时间工作中用到了MXnet,然而MXnet的文档写的实在是.....所以在这记录点东西,方便自己,也方便大家. 一.MXnet的安装及使用 开源地址:https://github.com/dmlc ...

  9. Git 中无法忽略 .xcuserstate 的解决方法

    1.查看代码变化git status 2.接着输入 git rm –cached 刚才复制的地址 ,如下.git rm --cached RxSwift/Rx.xcodeproj/xcuserdata ...

  10. ArcGIS超级工具SPTOOLS-编号工具

    1.1  整库更新BSM 输入一个MDB或GDB,将所有的要素类和表,按某个字段BSM,BSM不存在,会自动创建,从某个开始,顺序编号. 1.2  更新BSM 根据自己输入的多个表或要素,可以自己编号 ...