生产环境Session解决方案、Session服务器之Redis

 

目录

一、服务器配置

二、安装nginx

三、安装配置Tomcat:

 四、配置session

Session服务器之Redis

Redis与Memcached的区别

安装部署redis


一、服务器配置

IP地址

主机名

软件包列表

192.168.100.131

huyang1

nginx

192.168.100.133

huyang3

JDK Tomcat  

192.168.100.135

huyang5

JDK Tomcat

二、安装nginx

配置主机名:
[root@localhost ~]# hostname nginx
[root@localhost ~]# bash
安装nginx软件包并修改:
[root@nginx ~]# yum -y install pcre-devel zlib-devel openssl-devel 
[root@nginx ~]# useradd -s /sbin/nologin -M nginx
[root@nginx ~]# tar xf nginx-1.15.9.tar.gz -C /usr/src/
[root@nginx ~]# cd /usr/src/nginx-1.15.9/
[root@nginx ~]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module && make && make install

--prefix=/usr/local/nginx 		#指定安装目录
--user=nginx --group=nginx 		#指定运行的用户和组
--with-file-aio 				#启用文件修改支持
--with-http_stub_status_module #启用状态统计
--with-http_ssl_module 		#启用ssl模块
--with-http_flv_module 		#启用flv模块,提供寻求内存使用基于时间的偏移量文件
--with-http_gzip_static_module	#启用gzip静态压缩
 
[root@nginx ~]# ln -s /usr/local/nginx/sbin/nginx  /sbin/
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
34     upstream tomcat_pool {
 35         server 192.168.100.133:8080 weight=1 max_fails=1 fail_timeout=10s;
 36         server 192.168.100.135:8080 weight=1 max_fails=1 fail_timeout=10s;
 37     }
 38 
 39     server {
 40         listen       80;
 41         server_name  localhost;
 42         charset utf-8;
 43         
 44         location / {
 45             root   html;
 46             index  index.html index.htm;
 47             proxy_pass http://tomcat_pool;
 48         }   
[root@nginx ~]# nginx

三、安装配置Tomcat:

配置主机名:
[root@localhost ~]# hostname node1  另外一台机器配置为node2
[root@localhost ~]# bash
安装配置Tomcat
解压apache-tomcat-7.0.54.tar.gz 包
[root@tomcat1 ~]# tar xf apache-tomcat-7.0.54.tar.gz 

解压后生成apache-tomcat-7.0.54文件夹,将该文件夹移动到/usr/local下,并改名为tomcat
[root@tomcat1 ~]# mv apache-tomcat-7.0.54 /usr/local/tomcat

启动Tomcat
[root@tomcat1 ~]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:      /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

Tomcat 默认运行在8080端口
[root@tomcat1 ~]# netstat -lnpt | grep java
tcp        0      0 :::8080                     :::*                        LISTEN      3318/java   

浏览器访问测试 192.168.100.133:8080 和 192.168.100.135:8080

均呈现下列图形!

生产环境Session解决方案、Session服务器之Redis_第1张图片

 四、配置session

建立session.jsp的测试页面
[root@node1 ~]# vim /usr/local/tomcat/webapps/ROOT/session.jsp
Session ID:<%= session.getId() %>
SessionPort:<%= request.getServerPort() %> <% out.println("This tomcat server 192.168.100.133");%> [root@node2 ~]# vim /usr/local/tomcat/webapps/ROOT/session.jsp Session ID:<%= session.getId() %>
SessionPort:<%= request.getServerPort() %> <% out.println("This tomcat server 192.168.100.135");%> Session绑定: [root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf 34 upstream tomcat_pool { 35 ip_hash; 36 server 192.168.100.133:8080 weight=1 max_fails=1 fail_timeout=10s; 37 server 192.168.100.135:8080 weight=1 max_fails=1 fail_timeout=10s; 38 } [root@nginx ~]# killall -HUP nginx

 浏览器访问测试 192.168.100.131/session.jsp

生产环境Session解决方案、Session服务器之Redis_第2张图片

 刷新,id和IP地址都会变化

生产环境Session解决方案、Session服务器之Redis_第3张图片

Session服务器之Redis

Redis与Memcached的区别

  1. 内存利用率:使用简单的key-value(键值对)存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
  2. CPU性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached还是稍有逊色。
  3. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
  4. Redis支持数据的备份,即master-slave模式的数据备份。
  5. Redis不仅仅支持简单的key-Value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

安装部署redis

[root@huyang5 ~]# tar xf redis-6.2.12.tar.gz -C /usr/src/

[root@huyang5 ~]# cd /usr/src/redis-6.2.12/

[root@huyang5 redis-6.2.12]# make

生产环境Session解决方案、Session服务器之Redis_第4张图片

[root@huyang5 redis-6.2.12]# mkdir -p /usr/local/redis/{bin,etc,var}

[root@huyang5 redis-6.2.12]# cd src/

[root@huyang5 src]# cp redis-benchmark  redis-check-aof redis-cli redis-server  /usr/local/redis/bin/

[root@huyang5 redis-6.2.12]# cp ../redis.conf  /usr/local/redis/etc

[root@huyang5 redis-6.2.12]# cp ../sentinel.conf  /usr/local/redis/etc

生产环境Session解决方案、Session服务器之Redis_第5张图片

[root@huyang5 redis-6.2.12]# vim /usr/local/redis/etc/redis.conf //修改配置文件

生产环境Session解决方案、Session服务器之Redis_第6张图片

[root@huyang5 redis-6.2.12]# killall -9 redis-server

启动redis:

[root@huyang5 redis-6.2.12# /usr/local/redis/bin/redis-server  &&   /usr/local/redis/etc/redis.conf

[root@huyang5 redis-6.2.12]# netstat -anpt |grep redis

生产环境Session解决方案、Session服务器之Redis_第7张图片

监控redis共享session:

[root@huyang5 redis-6.2.12]# /usr/local/redis/bin/redis-cli -p 6379  monitor

生产环境Session解决方案、Session服务器之Redis_第8张图片

[root@huyang5 redis-6.2.12]# 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

生产环境Session解决方案、Session服务器之Redis_第9张图片

修改context.xml文件以支持调用redis

[root@huyang5/3 redis-6.2.12]# vim /usr/local/tomcat/conf/context.xml

生产环境Session解决方案、Session服务器之Redis_第10张图片

[root@huyang5 ~]# /usr/local/tomcat/bin/shutdown.sh

[root@huyang5 ~]# /usr/local/tomcat/bin/startup.sh

[root@huyang5 redis-session]# netstat -anpt | grep :6379

[root@huyang3 ~]# netstat -anpt | grep :6379

浏览器访问测试 http://192.168.100.131/session.jsp 

生产环境Session解决方案、Session服务器之Redis_第11张图片

刷新一次:这样就锁定在了135的session id

同理也可以反过来锁定133的session id

生产环境Session解决方案、Session服务器之Redis_第12张图片

 

你可能感兴趣的:(firefox,前端,缓存)