Redis--(一)基础以及整体概括

一、Redis简介

        Redis,英文全称是Remote Dictionary Server(远程字典服务),ANSI C语言编写、支持网络、可基于内存亦可持持久化的日志型、Key-Value数据库。可以用作数据库、缓存、消息中间件。

二、Redis优缺点

(一)优点

  • 响应速度快

  • 内存读写,比存在磁盘的数据库读写速度快,省去了磁盘IO消耗

  • 单线程操作,避免频繁的上下文切换

  • 采用了非阻塞IO多路复用机制(I/O多路复用机制:I/O多路复用就是只有单个线程,通过跟踪每个I/O流的状态,来管理多个I/O流)

(二)缺点

  • 数据容易丢失,因为是在内存中读写

  • 依赖内存的大小

  • 缓存和数据库双写一致性问题

  • 缓存穿透

  • 缓存雪崩

  • 缓存击穿

三、Redis 和 Memcached 有什么区别

(一)redis与memcache总体对比

        1.性能

        2.内存使用效率

        3.内存空间和数据量大小

        4.数据结构支持

        5.可靠性

        6.应用场景

(二)redis与memcache内存管理机制对比

        1. Memcached的内存管理机制

        2. Redis的内存管理机制

(三)Redis和Memcached的集群实现机制对比

        1. Memcached的分布式存储

        2. Redis的分布式存储

四、Redis使用场景

缓存、数据共享分布式、分布式锁、全局ID、计数器、位统计、购物车、消息队列、点赞,签到,打卡、排行榜、消息发布和订阅、商品标签

五、Redis-数据结构

(一)String

        String是Redis最基础的数据结构类型,它是二进制安全的,可以存储图片或者序列化的对象,值最大存储为512M

(二)Hash

String 元素组成的字典,适用于存储对象

(三)Set

String 元素组成的无序集合,通过哈希表实现(增删改查时间复杂度为 O(1)),不允许重复。

(四)Zset

有序集合(sorted sets),因为在redis中,有序集合相关的操作指令都是以z开头的,比如zrange、zadd、zrevrange、zrangebyscore等等,所以我们都将redis中的有序集合叫做zsets

(五)List

  • 列表,按照 String 元素插入顺序排序。其顺序为后进先出。由于其具有栈的特性,所以可以实现如“最新消息排行榜”这类的功能,redis中的lists在底层实现上并不是数组,而是链表

剩余3种比较特殊的数据结构

(六)BitMap

BitMap是一种实现对位的操作的数据结构,但是其实它本身并不是数据结构,底层其实是字符串,是借助字符串进行位操作的,但是BigMap在Redis中使用却和字符串不太一样,可以理解为这是一个以位为单位的数组,数组的每个单元格存放的是1或者0,数组的下标在BitMaps中被称为偏移量

(七)Hyperloglog

Redis中的HyperLogLog是一种基于基数估算的算法,所谓基数估算就是在一批数据中不重复的元素个数有多少个

(八)Geospatial

Redis 在 3.2 版本中加入了地理空间(geospatial)以及索引半径查询的功能,主要用在需要地理位置的应用上。将指定的地理空间位置(经度、纬度、名称)添加到指定的 key 中,这些数据将会存储到 sorted set。这样的目的是为了方便使用 GEORADIUS 或者 GEORADIUSBYMEMBER 命令对数据进行半径查询等操作。也就是说,推算地理位置的信息,两地之间的距离,“附近的人”等等场景都可以用它实现。geo 底层原理是使用 zset来实现的

六、Redis-持久化机制

Redis提供了RDB和AOF两种持久化机制

(一)RDB

(二)AOF

七、Redis-缓存击穿、缓存穿透、缓存雪崩

(一)缓存击穿

(二)缓存穿透

(三)缓存雪崩

八、Redis-高可用

(一)主从模式

(二)哨兵模式

(三)Cluster集群模式

九、Redis-实现分布式锁

        在单体项目中,我们处理多线程同时操作某一处代码块或者变量时就使用 Synchronized 或者 Lock 锁去保证数据的安全性,但是,现在我们基本上都是使用微服务,当我们把服务部署到多个进程中去,这时候使用 Synchronized 或者 Lock 锁就没办法保证数据的安全性,这时候就需要用到分布式锁

十、Redis-过期策略和内存淘汰策略

(一)基于过期时间的淘汰策略

(二)基于数据范围的淘汰策略

十一、热key、大key

(一)什么是热Key

(二)什么是大Key

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值