Session 独立服务器之Memcached 与 Redis

Session 服务器之 Memcached(tomcat,memcached 为 7 版本,版本要配套)(多台tomcat)

(一台Nginx,两台tomcat)

1、配置各个机器的主机名
2、配置主机名与IP的映射
3、关闭防火墙和selinux

两台 tomcat 上安装 Memcached

[root@node1 ~]# yum -y install libevent memcached

[root@node1 ~]# memcached -u root -m 512M -n 10 -f 2 -d -vvv -c 512

选项:

       -h          #查看帮助信息

       -p           #指定 memcached 监听的端口号 默认11211

       -I           #memcached 服务器的IP地址

        -u          #memcached 程序运行时使用的用户身份必须是 root 用户

         -m        #指定使用本机的多少物理内存数据默认 64M

         -c         # memcached 服务的最大链接数

       -vvv       #显示详细信息

        -n         # chunk size 的最小空间是多少单位字节

         -f        # chunk size 大小增长的倍数默认为  1.25 倍

         -d        #在后台启动

[root@node1 ~]#netstat -anpt | grep :11211 #(检测 memcached 是否存活,memcached 端口为 11211)

测试 memcached 能否 存取数据

[root@node1 ~]# yum -y install telnet

[root@node1 ~]# telnet 192.168.200.113 11211

set username 0 0 8

zhangsan

STORED   #值以存进

get username

VALUE username 0 8

zhangsan 

END

quit

Connection closed by foreign host

最后执行让 Tomcat-1 Tomcat-2 通过(msm) 连接到 memcached

将 session 包中的 “*.jar” 复制到 /usr/local/tomcat/lib/ 下面

[root@node1 ~]# cp session/* /usr/local/tomcat/lib/

编辑 tomcat 配置文件连接到指定的 memcached 服务器,两台 tomcat 配置一样

 [root@node1 ~]# vim /usr/local/tomcat/conf/context.xml

<Context>

<Manager   className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNode="memA:192.168.200.113:11211 memB:192.168.200.114:11211"

requestUrilgnorePattem=".*\(ico|png|gif|jpg|js|css)$"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />

</Context>

重启服务

如果成功,tomcat 与 memcached 端口会连在一起,前后有变化

[root@node1 ~]# netstat -anpt | grep java

浏览器访问测试时,关闭 memB:192.168.200.114 的 memcached服务器,在进行测试发现 memcached 服务器发生了变化,但是 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 等数据结构的存储

(一台Nginx,两台tomcat)

1、配置各个机器的主机名
2、配置主机名与IP的映射
3、关闭防火墙和selinux

安装部署 Redis

[root@node1 ~]# tar xf redis-3.2.5.tar.gz -C /usr/local/

[root@node1 ~]# cd /usr/local/local/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.gez

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 redis-check-rdb  /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

查看是否启动

netstat  -anpt | grep redis    (netstat -anpt | grep 6379)

监控 Redis  共享 session(也可不用监控)

[root@node1 redis-3.2.5]#/usr/local/redis/bin/redis-cli -p 6379  monltor

将 tomcat 需要调用 Redis 的 jar 包放入 tomcat/lib

[root@node1 redis-3.2.5]# cp tomcat-redis-session-manager-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>

<Valve   className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />

<Manager   className="com.orangefunction.tomcat.redissessions.RedisSessionManager"

host="192.168.200.113"     //redis 的IP地址

port="6379"

database="0"

maxinactiveinterval="60" />

</Context>

重启 tomcat 服务

 

转载于:https://www.cnblogs.com/2567xl/p/11583298.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值