1.Redis是什么:
Redis(Remote Dictionary Server),即远程字典服务
是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、 Key-Value数据库, 并提供多种语言的API,是当下最热门的NoSQL技术之一,也被人 们称为结构化数据库
redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在 此基础上实现了 master-slave(主从)同步。
2.Redis能干什么
内存存储、持久化,内存中是断电即失,所以所持久化很重要(rdb、aof)
效率高,可以用于高速缓存
发布订阅系统
地图信息分析
计数器(浏览量)、计时器

3.Redis的特性
多样的数据类型
持久化
集群
事务

4.Redis的基础知识
(1)通过查看Redis的配置文件可以知道redis默认有16个数据库
Redis(1)

默认使用的是第0个
可以使用select进行切换数据库
5.Redis是单线程的
(1)为什么redis要使用单线程:
官方表示redis是基于内存操作的,CPU不是redis 的性能瓶颈,redis的瓶颈是根 据机器的内存和网络带宽,既然能使用单线程来实现,就使用单线程了
(2)为什么redis单线程还那么快:
redis是c语言写的,官方提供的数据为100000+的QPS,完全不比同样是使用 key-value 的Memecache差
误区1:高性能的服务器一定是多线程的?
误区2:多线程一定比单线程高?
核心:redis是将所有的数据全部放在内存中的,所以说使用单线程去操作效率就 是最高的,多线程CPU 会上下文会切换,这是一个耗时的操作,对于内存系统来 说如果没有上下文切换效率就是最高的。多次读写都是在一个cpu上的,在内存情 况下,这个就是最佳方案
6.Redis的数据类型
(1)根据官方文档
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据 库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散 列(hashes), 列表(lists), 集合 (sets), 有序集合(sorted sets) 与范围查 询, bitmaps, hyperloglogs 和 地理空间 (geospatial) 索引半径查询。 Redis 内 置了 复制(replication),LUA脚本(Luascripting), LRU驱动事件(LRU eviction), 事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨 兵(Sentinel)和自动 分区(Cluster)提供高可用性(highavailability)。

(2)五大数据类型
String(字符串)
List(列表)
Set(集合)
Hash(哈希)
Zset(有序集合)
(3)三种特殊类型
geospatial(地理位置)
hyperloglog(基数存储)
bitmap(位存储)
7.Redis事务
Redis单条命令是保证原子性的,但是事务不保证原子性
Redis事务没有隔离级别的概念
Redis事务本质:一组命令的集合,一个事务中的所有命令都会被序列化,在事务执行 的过程中,会按 照顺序执行
一次性、顺序性、排他性。执行一系列的命令
所有的命令在事务中,并没有被直接执行,只有发起执行命令的时候才会执行(Exec)
---- 队列 set set set 执行 -----
开启事务(multi)
命令入队(…)
执行事务(exec)
8.Redis实现乐观锁(watch)
乐观锁:很乐观,认为什么时候都不会出现问题,无论做什么都不会加锁。在更新数据 的时候去判断一下,
在此期间是否有人改动过这个数据(version) 获取version
更新的时候比较version
流程图
Redis(1)
9.资料收集于https://www.bilibili.com/video/BV1S54y1R7SB(遇见狂神说)

相关文章:

  • 2021-04-13
  • 2021-07-02
  • 2021-07-05
  • 2021-05-18
  • 2021-06-21
  • 2021-07-29
  • 2021-12-04
  • 2021-10-14
猜你喜欢
  • 2021-07-15
  • 2021-06-09
  • 2022-12-23
  • 2021-12-16
  • 2022-02-20
  • 2021-11-16
相关资源
相似解决方案