redis实现session共享,哨兵
一、Redis介绍
1、redis是key-value的存储系统,属于非关系型数据库
2、特点:支持数据持久化,可以让数据在内存中保存到磁盘里(memcached:数据存在内存里,如果服务重启,数据会丢失)
3、支持5种数据类型:string,hash,list,set,zset
4、两种文件格式(即数据持久化)
(1)RDB(全量数据):多长时间/频率,把内存中的数据刷到磁盘中,便于下次读取文件时进行加载
(2)AOF(增量请求):类似mysql的二进制日志,不停地把对数据库的更改语句记录到日志中,下次重启服务,会根据二进制日志把数据重写一次,加载到内存里,实现数据持久化
5、存储
(1)内存存储 (2)磁盘存储(RDB) (3)log文件(AOF)
二、Redis安装
1、下载 redis-2.8.21.tar.gz
2、解压: tar zxvf redis-2.8.21.tar.gz
3、cd redis-2.8.21
4、编译:make
5、安装: make PREFIX=/usr/local/redis install
6、创建配置文件所在的目录:mkdir /usr/local/redis/etc
7、网上下载配置文件 redis.conf,放到 6 创建的目录下
8、创建启动脚本 /etc/init.d/redis
9、添加redis用户:useradd -s /sbin/nologin redis
10、创建var目录,放置redis 的pid,rdb文件: mkdir /usr/local/redis/var
11、修改var目录和配置文件权限
(1)chmod 777 /usr/local/redis/var
(2)chmod 755 /etc/init.d/redis
12、启动redis: service redis start
13、ps aux | grep redis ——》 监听6379端口
三、php应用redis
前提:已经搭建了LAMP网站架构
php不能直接连redis,需要redis模块的支持(redis是和开发语言结合使用的)
说明配置已经生效
3、Redis 存储session 测试
(1)进入apache的htdoc下
(2)创建session.php
<?php
session_start();
if (!isset($_SESSION['TEST'])) {
$_SESSION['TEST'] = time();
}
$_SESSION['TEST3'] = time();
print $_SESSION['TEST'];
print "<br><br>";
print $_SESSION['TEST3'];
print "<br><br>";
print session_id();
?>
(3)测试 ——》 记得去掉redis配置文件中的密码设置,否则会返回500授权错误
(a)curl localhost/session.php

(b)redis-cli ——》 在家目录的.bashrc加入了redis启动目录

说明session已经存入到redis里了
四、redis的一些题外话
redis一些重点
1、主从
2、持久化
3、哨兵实现主从切换
4、sentinel原理 (2.8.0之后有这个功能 sentinel.conf)
5、数据类型: hash,string 用得多
着重讲下哨兵
1、支持redis协议
2、原理简单描述
所有服务器都部署哨兵,哨兵去监控主从,要是redis或者哨兵死了,另外所有的机器会重新投票(就是下图6379后面的数字,比如2),投死那台挂掉的机器(2台机器投票确认机器死了),再在另外所有的机器上自成一个体系,重新生成主

3、重点
(1)哨兵的配置文件也就是sentinel.conf是时时发生变化的
当主被投票死掉后,从起来于是产生一个新的主ip,新主会变成配置文件master的ip
(2)redis的配置文件也会改变
(3)当已死的主恢复后,就变成了从
(4)哨兵一定要是单数,否则选举易出现问题,偶数可能会同票
4、几个问题
(1)什么时候用redis?
redis实现session共享,哨兵的更多相关文章
- Tomcat通过Redis实现session共享的完整部署记录
对于生产环境有了一定规模的tomcat集群业务来说,要实现session会话共享,比较稳妥的方式就是使用数据库持久化session.为什么要持久化session(共享session)呢?因为在客户端每 ...
- 分布式中使用Redis实现Session共享(二)
上一篇介绍了一些redis的安装及使用步骤,本篇开始将介绍redis的实际应用场景,先从最常见的session开始,刚好也重新学习一遍session的实现原理.在阅读之前假设你已经会使用nginx+i ...
- 项目分布式部署那些事(1):ONS消息队列、基于Redis的Session共享,开源共享
因业务发展需要现在的系统不足以支撑现在的用户量,于是我们在一周之前着手项目的性能优化与分布式部署的相关动作. 概况 现在的系统是基于RabbitHub(一套开源的开发时框架)和Rabbit.WeiXi ...
- 分布式Session共享(一):tomcat+redis实现session共享
一.前言 本文主要测试redis实现session共享的实现方式,不讨论如何让nginx参与实现负载均衡等. 二.环境配置 本测试在Window下进行 name version port Tomcat ...
- 负载均衡,最理想使用 redis实现session共享
负载均衡在多台php服务器负载均衡的情况下,第一秒请求是a服务器,第二秒请求是b服务器, session必须放在一个公共的服务器,最理想是使用 redis实现session共享.内存的速度比磁盘访问快 ...
- 单点登录实现(spring session+redis完成session共享)
一.前言 项目中用到的SSO,使用开源框架cas做的.简单的了解了一下cas,并学习了一下 单点登录的原理,有兴趣的同学也可以学习一下,写个demo玩一玩. 二.工程结构 我模拟了 sso的客户端和s ...
- Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享
小伙伴们好久不见!最近略忙,博客写的有点少,嗯,要加把劲.OK,今天给大家带来一个JavaWeb中常用的架构搭建,即Nginx+Tomcat搭建服务集群,然后通过Spring Session+Redi ...
- CentOS7 PHP+Redis实现Session共享
先yum简单的安装redis wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/epel-7.repo ...
- spring-session+Redis实现Session共享
关于session共享的方式有多种: (1)通过nginx的ip_hash,根据ip将请求分配到对应的服务器 (2)基于关系型数据库存储 (3)基于cookie存储 (4)服务器内置的session复 ...
随机推荐
- oracle高性能的SQL语句的写法
1.当多表查询的时候,把数据量小的表放在最后面,ORACLE会把最后面的表当作基础表,因为表间连接时,最右边的表会被放到嵌套循环的最外层.最外层的循环次数越少,效率越高. 2.Oracle采用自下而上 ...
- dedecms织梦如何调用指定的多个栏目导航
{dede:channelartlist row='2' typeid='1,2这里输入多个指定的栏目ID' } <li><a href='{dede:field name='typ ...
- .net 字符串驻留
.net中的string表达的是常量字符串. JIT编译器编译时判断遇到的常量字符串是否在内部散列表中,如果不在,添加进去.当第一次执行到含字符串的方法时,CLR会检查该字符串是否在内部的一个散列表中 ...
- 多媒体开发之---h264格式slice_header
从Slice_Header学习H.264 写在前面: $ H.264我是结合标准和毕厚杰的书一块学的.看句法语义时最是头疼,一大堆的元素,很需要耐心.标准中在介绍某个元素的语义时,经常会突然冒 ...
- Android数据适配器(Adapter)优化:使用高效的ViewHolder
原文链接:http://stackvoid.com/using-adapter-in-efficiency-way/ 在使用Listview或GridView的时候,往往须要自己定义数据适配器.一般都 ...
- XSD文件详解(二)
<?xml version="1.0" encoding="gb2312"?> <studentlist> <student ...
- 关于KMP算法的感想
今天,看了KMP,首先是在网上看的,看了很久没看懂,有很多思想,很多next的推导,就相当于很多的版本,后来,去看了<<大话数据结构>>这本书,才看懂,这KMP的神奇之处,这本 ...
- 【HTML5开发系列】meta元素详解
meta元素可以用来定义文档的各种元数据.他有很多种用法,一个HTML文档可以包含多个meta元素. meta元素在HTML5中的变化 charset属性是HTML5中新增的.在HTML4中,http ...
- PAT 1062. 最简分数(20)
一个分数一般写成两个整数相除的形式:N/M,其中M不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1 和 N2/M2,要求你按从小到大的顺序列出它们之间分母 ...
- 还原sqlserver2008 r2 数据库步骤
1: 有备份文件bak 文件(是在sqlserver2008 r2上备份的) 数据库下载地址(讯雷) ed2k://|file|cn_sql_server_2008_r2_express_with_m ...