zoukankan      html  css  js  c++  java
  • sessionState~RedisSessionStateProvider高可用的实现

    早在几年前就有了sessionState进行共享session的方式,今天总结一下高可用redis实现的共享session的方式

    sentinel集群搭建

    1

    工作过程图

    2

    配置

    Redis数据服务配置

    首先配置Redis的主从服务器,修改redis.conf文件如下
    主服务配置

    bind 192.168.xx.xx 192.168.xx.xx192.168.xx.xx
    requirepass "123456"
    

    从服务配置

    bind 192.168.xx.xx 192.168.xx.xx192.168.xx.xx
    requirepass "123456"
    slaveof 192.168.xx.xx6379
    masterauth 123456
    

    Redis 哨兵服务配置

    配置3个哨兵,每个哨兵的配置都是一样的。在Redis安装目录下有一个sentinel.conf文件,copy一份进行修改。

    # 禁止保护模式
    protected-mode no
    # 配置监听的主服务器,这里sentinel monitor代表监控,mymaster代表服务器的名称,可以自定义,192.168.11.128代表监控的主服务器,6379代表端口,2代表只有两个或两个以上的哨兵认为主服务器不可用的时候,才会进行failover操作。
    sentinel monitor mymaster 192.168.xx.xx 6379 2
    # sentinel author-pass定义服务的密码,mymaster是服务名称,123456是Redis服务器密码
    sentinel auth-pass mymaster 123456
    

    启动

    从主-再从-再哨兵

    ./redis-server ./redis.conf &
    ./redis-sentinel ./sentinel.conf &
    

    哨兵集群操作命令

    redis-cli -h 192.168.60.104 -p 26379 info sentinel
    redis-cli -h 192.168.60.104 -p 26379 SENTINEL master mymaster
    redis-cli -h 192.168.60.104 -p 26379 SENTINEL slaves mymaster
    redis-cli -h 192.168.60.104 -p 26379 SENTINEL get-master-addr-by-name mymaster
    

    .net应用的配置

    直接把redis数据服务器地址写上即可

    当主redis宕机之后,会有几秒的停顿,然后会自动选举新的master.

    <system.web>
        <compilation debug="true" targetFramework="4.5" />
        <httpRuntime targetFramework="4.5" />
        <sessionState mode="Custom" customProvider="MySessionStateStore" cookieName="pkulaw_v6_sessionid" timeout="240">
          <providers>
            <add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" connectionString="192.168.60.104:6379,192.168.60.109:6379,192.168.60.127:6379,password=bdyh@2020" databaseId="0" applicationName="v6" connectionTimeoutInMilliseconds="30000" operationTimeoutInMilliseconds="20000" accessKey="" ssl="false" />
          </providers>
        </sessionState>
      </system.web>
    
  • 相关阅读:
    python命名
    类的绑定方法与非绑定方法
    类的封装
    类的多态性
    python中的while循环和for循环
    python的单、双、多分支流程控制
    python中的运算符
    python中的变量
    接口与归一化设计
    类的继承
  • 原文地址:https://www.cnblogs.com/lori/p/14206419.html
Copyright © 2011-2022 走看看