Redis

  • string
    1.单值缓存
    2.分布式(不推荐)
    3.计数器
  • hash
    key value(key:value)结构
    1.对象缓存
    2.电商购物车
    优于string,但分布式不适合大量使用
  • list
    左右push(加) 和pop(取)
    stack =lpush+lpop=fifo
    queue=lpush=rpop
    bkmq=lp+bp(阻塞拿)

1.微博和微信公众号信息流
方式一(push): 不用排序
用户的list集合中塞信息LRANGE msg:{userid} 0 4 查看最新微博信息
问题:
大V 很多粉丝 可能问题比较大,粉少的可用
可优化,先给在线的用户发送,再给离线的用户发送(或者在线再发送)
方式二(pull):要再排序
大V专门一个队列,其它用户上线从其中拿,后面排序

  • set
    1.交并差集计算
    2.微信抽奖小程序
    3.微信微博点赞,收藏,标签
    4.集合操作实现微博微信关注模型
    5.电商商品筛选

  • zset (有序集合)
    1.跟set一样的操作之类
    2.排行榜

redis的高性能:
Redis是单线程吗?
不是,单线程指对redis网络IO和键值对读写(命令)是由一个线程来执行,其它由额外线程执行。
为什么那么快?
数据在内存中
Redis单线程如何处理多并发客户端?

keys:all(不建议使用)
scan:渐进式(不一定)

持久化

一.RDB快照

当达到策略条件时,将数据持久化到rdb文件里面。
save 控制
dir rdb文件的地址 文件名:dump.rdb
bgsave的写时复制(COW)机制
save:同步
bgsave:异步

体积小,恢复快

问题:可能会丢数据

二.AOF

当进行操作时,记录修改的命令
appendonly yes (开启)
appendfsync everysec:每秒fsync一次(推荐)

体积大,恢复慢,安全性高

问题:执行时间很长,命令很大,恢复很难

优化;
AOF重写,根据内存生成AOF文件

三.AOF And RDB

两种都开启的话默认使用AOF恢复

开启混合持久化
4.0版本后
先开启AOF持久化后
aof-use-rdb-preamble yes
会两种方式混合保存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值