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>
    
  • 相关阅读:
    在PHP中截取字符串
    SQL查看一张表中是否存在记录
    最多两位小数,如123.45的转换结果为:壹百贰拾叁元肆角伍分
    SQL将金额转换为汉子
    SQL 汉字转换成拼音首字母 首字母查
    SQL生成随机数
    Linux gsoap2.6 webservices
    cxGrid的一些使用方法
    不修改forms.pas单元就可以去掉MDI窗口的滚动条
    今天,我种下了一朵小蓝花
  • 原文地址:https://www.cnblogs.com/lori/p/14206419.html
Copyright © 2011-2022 走看看