• Redis-配置文件与持久化


    redis 乐观锁

    乐观锁,即获取数据时不加锁,在修改的时候才会比对数据是否和获取时一致。若一致才能修改。

    使用watch关键字,他的作用是在事务开始前先获取值,然后监控这个值,当你开始事务之后,如果在你执行之前redis会自动帮你检测这个数据是否被更改了,若被更改了整个事务都不会执行。需要unwatch之后再重新开始watch,开始事务。

    redis.conf

    启动的时候,就通过配置文件启动。

    1.对unit单位,大小写不敏感
    2.包含,可以把多个配置文件导入到我们的总配置文件中
    3.网络,bind默认是本机,port默认是6379,protected-mode,保护模式默认开启。
    4.通用,daemonize yes以守护进程的方式运行,默认是no,需要我们手动改成yes
    pidfile /var/run/redis_6379.pid  如果以后台方式运行,我们就需要一个pid文件。
    loglevel notice 默认日志级别
    logfile 日志文件位置,为空则默认输出
    databases 16 数据库数量,默认16个
    always-show-logo yes 是否总是显示logo,就是我们启动redis出现的那个大大的图像。默认开启
    5.快照
    也叫持久化,在规定时间内,执行多少次会持久化到硬盘.rdb .aof,因为redis是内存
    数据库,如果没有持久化,断电数据就丢失了。
    
    save 900 1  # 如果900s内,如果至少有一个key进行了修改,我们就持久化操作
    save 300 10  # 如果在300s内,至少10个key进行了修改...
    save 60 10000  # 如果在60s内,至少10000个key进行了修改...
    
    stop-writes-on-bgsave-error yes  持久化出错是否还继续工作,默认为yes
    rdbcompression yes  是否压缩rdb文件,默认开启,当然压缩要消耗一些cpu资源
    rdbchecksum yes  保存rdb文件时,进行错误检查,默认yes
    dir ./  # rdb文件默认保存位置,此处默认为当前文件夹
    
    6 REPLICATION复制,见后面
    
    7 security安全
    默认没有密码,可以在配置文件中 
    requirepass 123
    或者在命令中
    config set requirepass 456
    之后登陆redis之后就需要auth 加密码,才能进行后续操作
    
    8 clients客户端的一些限制,默认空
    maxmemory <bytes> 最大内存容量
    maxmemory-policy noeviction 内存满了之后的处理策略,有六种,具体六种百度
    
    9 append only aof配置
    appendonly no 默认不开启aof模式,即默认使用rdb方式持久化,因为正常情况下rdb都够用了
    appendfilename "appendonly.aof" 
    
    appendfsync 三种级别,默认为everysec,每秒持久化一次,always,每次修改执行一次,no,关闭
    
    

    持久化

    rdb机制

    有时候我们会对这个文件进行备份

    1.在我们利用save关键字,并且满足配置文件save的条件时会产生
    2.flushall的时候会产生
    3.退出redis的时候会产生
    
    当dump.rdb文件和启动文件在同一目录下,在启动的时候就会自动回复
    
    优点:
    。。。查
    缺点:
    。。。查
    

    aof(append only file)

    将我们的命令都记录下来,恢复的时候把所有命令重新执行一遍,读命令是不记录的。保存的文件是appendonly.aof。默认不开启。

    如果手动开启之后,那么重启redis之后就会产生appendonly.aof文件,因为默认是每秒备份一次。

    当我们的appendonly.aof有错误,比如有些错误的代码,那么redis 是无法启动的,我们可以使用自带的redis-check-aof来修复这个文件

    redis-check-aof --fix appendonly.aof
    

    这个修复会帮我们删除一些错误的代码,保证大部分的数据的完整的。

    aof优点:
    如果开启每一次修改都同步,文件完整性更好
    如果开启每秒同步,只会丢失一秒的数据
    缺点:
    aof文件比rdb大很多,且修复速度慢
    aof运行效率也低于rdb
    
    重写规则
    

    redis发布订阅

    需要两个终端测试

    订阅端
    subscribe dingyue1 订阅消息,自动监听,当发送端有信息发送,就自动获取
    
    
    发布端
    puiblish dingyue2 hello 发送信息
    
    unsubscribe dingyue1 退订
    

    发布订阅原理

    redis是使用C实现的,通过分析redis源码里的pubsub.c文件,了解发布和订阅的底层实现,借此加深对redis的理解。

    Redis通过publish、subscribe和psubscribe等命名实现发布和订阅功能。

    通过subscribe命令订阅某一个频道后,redis-server里维护了一个字典,字典的键就是一个个频道,而字典的值则是一个链表。

    通过publish命令向订阅者发送信息,redis-server会使用给定的频道作为key,在它维护的channel字典中查找记录了订阅这个频道所有客户端的链表,遍历这个链表,将信息发布给所有订阅者

    pub/sub从字面上理解就是发布(publish)与订阅(subscribe),在riedis中,你可以设定对某一个key值进行信息发布及信息订阅,当一个key值上进行了信息发布后,所有订阅他的客户端都会收到相应的数据。这一功能最明显的用法就是用于实时信息系统,比如普通的即时聊天,群聊等等

  • 相关阅读:
    物联网平台推荐
    支持可视化看板和组态的物联网平台
    ThingsKit物联网平台物模型发布啦!!! ​​​
    基于ThingsBoard二次开发的物联网平台:ThingsKit物联网平台
    ThingsKit 物联网平台 v1.0.0 Release 版本发布
    ThingsKit:基于 Thingsboard 开发,面向中小型企业开箱即用的物联网平台。
    一文读懂 TDengine 的三种查询功能
    如何从 InfluxDB/OpenTSDB 无缝连接到 TDengine
    中智车联:用 TDengine 高效处理车辆运营可视化管理
    新一代开源时序数据库TDengine有哪些优势?
  • 原文地址:https://www.cnblogs.com/chiyun/p/14082145.html
Copyright © 2020-2023  润新知