前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis总结笔记

Redis总结笔记

作者头像
沁溪源
发布2021-05-18 10:30:31
5041
发布2021-05-18 10:30:31
举报
文章被收录于专栏:沁溪源

redis事务

  • redis事务 命令:multi标识事务开始; exec表示事务结束并执行; redis事务并不是立即执行,而是将执行命令入队列(同时校验命令的语法和命令是否正确),最后一起执行; 故redis事务执行失败涉及两种原因:
  1. 命令入列时,语法错误: 例如:>ahds; 此时会提示报错信息,事务提交时,会将所有命令的执行都失败
  2. 命令入列时,语法、关键字正确,但是操作对象值类型错误等等: 例如:
代码语言:javascript
复制
		set money 100
		set lisi 200
		multi
		decrby money abc
		decrby lisi 1
		exec

命令入队列过程中,无语法错误,会正常存入执行队列中,但是事务提交时,会报错;;;;但是但是,此时正确的命令(即操作的对象和值均无误)依然会执行,仅仅将存在问题的命令(校验不通过)执行失败

消息订阅

使用办法: 订阅端: Subscribe 频道名称; 发布端: publish 频道名称 发布内容;

代码语言:javascript
复制
客户端
redis 127.0.0.1:6379> subscribe news
Reading messages... (press Ctrl-C to quit)
1) "message"
2) "news"
3) "good good study"
1) "message"
2) "news"
3) "day day up"

服务端:
redis 127.0.0.1:6379> publish news 'good good study'
(integer) 1
redis 127.0.0.1:6379> publish news 'day day up'
(integer) 1

持久化

持久化: 即把数据存储于断电后不会丢失的设备中,通常是硬盘;

rdb(快照)方式

工作原理概述: 每隔N分钟或N次写(新增或者修改)操作后, 从内存dump数据形成rdb文件, 压缩 放在备份目录

  • 相关设置参数:
代码语言:javascript
复制
save 900 1    #刷新快照到硬盘中,必须满足两者要求才会触发,即900秒之后至少1个关键字发生变化。
save 300 10  #必须是300秒之后至少10个关键字发生变化。
save 60 10000 #必须是60秒之后至少10000个关键字发生变化。
(save3个选项都注释,则rdb禁用)
stop-writes-on-bgsave-error yes    #后台备份存储错误,停止往redis中写入数据。
rdbcompression yes    #使用LZF压缩rdb文件。
rdbchecksum yes    #存储和加载rdb文件时校验。
dbfilename dump.rdb    #设置rdb文件名。
dir ./    #设置工作目录,rdb文件会写入该目录。
  • 缺点: 无法及时备份数据,如果在两个触发后台备份的时间段中,redis服务出现宕机,这个时间段中写入的数据不会存储到备份文件中,则会造成1至N分钟的数据丢失,redis重启时,则无法从备份文件中恢复;
  • 优点: 基于内存的数据做快照直接备份,故redis重启时恢复数据速度较快;

aof

思考第一个问题??? aof备份是每条命令都会写入备份文件,由于是基于内存线程处理,故会降低线程的写效率,于是引出aof同步方案?何时同步一次呢??appendfsync值设置

思考第二个问题??? 基于第一个问题,设置AOF同步方案,假设设置为每秒同步一次,那么如果我们对同一个key进行100次写入操作,那AOF文件中必然会存在100条关于这条key的记录,造成AOF文件过大,故引出AOF 重写解决上述问题。

AOF重写: aof重写是指把内存中的数据,逆化成命令,写入到.aof日志里.以解决 aof日志过大的问题.

  • 参数设置
代码语言:javascript
复制
appendonly no #是否仅要日志
appendfsync no # 系统缓冲,统一写,速度快
appendfsync always # 系统不缓冲,直接写,慢,丢失数据少
appendfsync everysec #折衷,每秒写1次
appendfilename appendonly.aof #aof文件名
no-appendfsync-on-rewrite no #重写aof时同步最新数据
auto-AOF-rewrite-percentage 100 当前aof文件是上次重写是大N%时重写
auto-AOF-rewrite-min-size 64mb aof重写至少要达到的大小
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/05/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • redis事务
  • 消息订阅
  • 持久化
    • rdb(快照)方式
      • aof
      相关产品与服务
      云数据库 Redis®
      腾讯云数据库 Redis®(TencentDB for Redis®)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档