VideoOS 后端对Redis的使用


  • Global Moderator

    OS后端主要使用了阿里云的主从版的Redis云服务
    0_1547023318799_1616d5cc-265d-4412-83ed-81b7a000d6ec-image.png

    Redis主从流程:
    1)从服务器连接主服务器,发送SYNC命令;
    2)主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;
    3)主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;
    4)从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;
    5)主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令;
    6)从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令
    1.首先介绍一下Redis是什么?

     Redis是由ANSI C语言编写的一种支持网络 可基于内存 亦可持久化 (支持快照功能) 的非关系型储数据库   Redis支持string,hash,set,list,zset等五种数据类型
     Redis主要用于缓存,MQ    Redis是目前一线互联网电商等公司做高可用支持高并发架构设计选型必备的非关系型数据库。
    

    2.SpringBoot在application-dev.yml配置Redis

          spring:
                redis:
                  shiro:
                    # redis服务地址
                    host: xxxx.redis.rds.aliyuncs.com
                    # redis服务端口地址
                    port: 6379
                    #超时处理
                    timeout: 0
                    #redis密码
                    password: *************
                    # 连接池最大阻塞等待时间(使用负值表示没有限制)
                    max-wait: -1
                    # 连接池中的最大空闲连接
                    max-idle: 8
                    # 连接池中的最小空闲连接
                    min-idle: 0
    

    3.Redis在OS后端的应用
    OS系统主要是用在用户登陆模块,投放计划模块用到了Redis的string类型
    pom文件配置:
    0_1547022721101_541061c9-9a4d-4642-93fd-1c9b64e2b6b4-image.png
    Controller引用 import com.videojj.videoservice.dao.RedisSessionDao即可
    登陆模块 用户登陆生成的sessionId作为token存放在Redis缓存数据库,设置默认过期时间为2天
    0_1547022644122_17b5b007-b6cb-4190-ae5e-458a5edffe8e-image.png

    当用户退出登陆时 删除对应的session 清除Redis分区里的SessionId 即Token失效
    0_1547022799672_7639d355-b55f-4a81-8f15-c8439ac93e3e-image.png

    对Redis内部原理和高级用法感兴趣的可移步到:
    Reids官方文档:https://redis.io/
    Redis源码:https://github.com/antirez/redis
    Redis集群:http://redisdoc.com/topic/cluster-tutorial.html https://www.cnblogs.com/tianciliangen/p/7942560.html