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
1 <?php 2 session_start(); 3 if (!isset($_SESSION['TEST'])) { 4 $_SESSION['TEST'] = time(); 5 } 6 $_SESSION['TEST3'] = time(); 7 print $_SESSION['TEST']; 8 print "<br><br>"; 9 print $_SESSION['TEST3']; 10 print "<br><br>"; 11 print session_id(); 12 ?>
(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?
转载于:https://www.cnblogs.com/windysai/p/6226995.html
redis实现session共享,哨兵相关推荐
- Tomcat通过Redis实现session共享的完整部署记录
对于生产环境有了一定规模的tomcat集群业务来说,要实现session会话共享,比较稳妥的方式就是使用数据库持久化session.为什么要持久化session(共享session)呢?因为在客户端每 ...
- SpringBoot整合Redis+Redis缓存应用+Redis实现Session共享+...
一.SpringBoot整合Redis 1.导入依赖 <!--存在Redis依赖--> <dependency><groupId>org.springframewo ...
- Rainbond最佳实践:Tomcat配置Redis实现Session共享
Rainbond:生产级无服务器PaaS Rainbond是国内首个开源的生产级无服务器PaaS,深度整合基于Kubernetes的容器管理.多类型CI/CD应用构建与交付.多数据中心的资源管理等技术 ...
- 单点登录实现(spring session+redis完成session共享)
一.前言 项目中用到的SSO,使用开源框架cas做的.简单的了解了一下cas,并学习了一下 单点登录的原理,有兴趣的同学也可以学习一下,写个demo玩一玩. 二.工程结构 我模拟了 sso的客户端和s ...
- php 获取cookieid,Redis实现Session共享详解
Redis实现Session共享 这几天在做session共享这么一个小模块,也查了好多资料,给我的感觉,就是太乱了,一直找不到我想要的东西,几乎全部实现方法都与我的想法不一样,在这里,我总结一下自己 ...
- C#session共享+redis_技术干货分享:基于SpringBoot+Redis的Session共享与单点登录
categories: 架构 author: mrzhou tags: SpringBoot redis session 单点登录 基于SpringBoot+Redis的Session共享与单点登录 ...
- 项目分布式部署那些事(1):ONS消息队列、基于Redis的Session共享,开源共享
因业务发展需要现在的系统不足以支撑现在的用户量,于是我们在一周之前着手项目的性能优化与分布式部署的相关动作. 概况 现在的系统是基于RabbitHub(一套开源的开发时框架)和Rabbit.WeiXi ...
- Tomcat集群通过redis实现session共享
Tomcat集群通过redis实现session共享 最近在XXX项目上做了tomcat集群的session共享,闲来无事鄙人将整个踩坑的过程粗糙的记录下来,给同学们分享一波,整个过程无硬编码,爽歪歪 ...
- tomcat集群redis配置session共享
针对之前的nginx+tomcat的负载均衡机制,因为会出现session丢失的问题,特研究了下redis的session共享:下载JDK7.tomcat7以备后续测试: 一.下载tomcat-red ...
最新文章
- bzoj1070————2016——3——14
- pytorch volatile 和 requires_grad
- 【bzoj 2460 [BeiJing2011]元素】
- python的datetime举例_Python datetime.timedelta()用法及代码示例
- 手游传奇架设教程_问道手游如何多开?
- vue-axios下载文件流blob,ie下载报传递给系统调用的数据区域太小.ie文件流下载报错;文件下载失败将blob的错误信息转换成json格式
- python入门之字符串处理_Python基础之字符串操作,格式化。
- P60 ---AI 在P60 上的人应用
- 计算机一级第103套题,全国计算机等级考试一级试题
- ORACLE sid,pid,spid总结
- 输入日期java_java怎么格式化输入日期
- DOS BAT脚本批量打开Edge网页
- [SV]SystemVerilog Structured Procedures --- always_comb、always_ff、always_latch
- 童年记忆中的优良环境
- 俄亥俄大学计算机科学专业,美国计算机科学专业最新排名!
- 电商运营如何打造爆品?
- android 主流框架与技术
- jsp制作的个人网站
- kubernetes HPA
- 双11是结束了,但这场没有硝烟的“战争”却没有结束
热门文章
- docker挂载的目录无法读写
- 软件项目风险管理介绍
- HDOJ 1428 漫步校园
- 2.3.3 mysql 权限系统介绍
- 8.5-7 mkfs、dumpe2fs、resize2fs
- android studio 反编译工具,android studio反编译工具jd-inteIIij
- java okhttp https_OkHttp是否支持接受自签名SSL证书?
- oraclesqldeveloper 批量插入多个存储过程_MongoDB如何批量执行写操作
- 秒懂边缘云丨快速入门边缘云
- 快手基于 Flink 的持续优化与实践