目录

1. Redis介绍

2. Redis的优点

3. Redis的基本操作

select

dbsize

keys

flushdb flushall

4. Redis的单线程的

5. Redis执行很快的原因


1. Redis介绍

Redis官网:redis中文官方网站

Redis(Remote Dictionary Server)是一个使用 C 语言编写的,高性能非关系型的键值对数据库。与传统数据库不同的是,Redis 的数据是存在内存中的,所以读写速度非常快,被广泛应用于缓存方向。Redis可以将数据写入磁盘中,保证了数据的安全不丢失,而且Redis的操作是原子性的。NoSQL数据库(非关系型数据库),以Key-Value键值对的形式来存储数据。

2. Redis的优点

  1. 基于内存操作,内存读写速度快。
  2. Redis是单线程的,避免线程切换开销及多线程的竞争问题。单线程是指网络请求使用一个线程来处理,即一个线程处理所有网络请求,Redis 运行时不止有一个线程,比如数据持久化的过程会另起线程。
  3. 支持多种数据类型,包括String、Hash、List、Set、ZSet等。
  4. 支持持久化。Redis支持RDB和AOF两种持久化机制,持久化功能可以有效地避免数据丢失问题。
  5. 支持事务。Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。
  6. 支持主从复制。主节点会自动将数据同步到从节点,可以进行读写分离。

3. Redis的基本操作

Redis中默认有16个数据库,默认是使用第0个数据库,可以通过select进行切换.

select

切换数据库 格式:select index

redis数据库的效率 redis数据库的优势_redis

dbsize

查看当前数据库中数据个数 格式:dbsize

redis数据库的效率 redis数据库的优势_数据库_02

keys

查看所有key 格式:keys *

redis数据库的效率 redis数据库的优势_java_03

flushdb flushall

清空当前数据库(flushdb)和清空所有数据库(flushAll)

redis数据库的效率 redis数据库的优势_redis数据库的效率_04

4. Redis的单线程的

Redis是基于内存操作,CPU不是Redis的性能瓶颈,Redis的性能问题自安于机器内存和网络带宽,既然可以使用单线程来实现,就优先选择单线程。

单线程好处:

  • 避免过多的上下文切换的开销。
  • 避免同步机制的开销,如果是多线程模型,需要考虑数据同步的问题,必然引入同步机制,比如锁机制,增加程序复杂度。
  • 实现比较简单,方便维护。

5. Redis执行很快的原因

  • 基于内存:Redis是使用内存存储,没有磁盘IO上的开销。数据存在内存中,读写速度快。
  • 单线程实现( Redis 6.0以前):Redis使用单个线程处理请求,避免了多个线程之间线程切换和锁资源争用的开销。
  • IO多路复用模型:Redis 采用 IO 多路复用技术。Redis 使用单线程来轮询描述符,将数据库的操作都转换成了事件,不在网络I/O上浪费过多的时间。
  • 高效的数据结构:Redis 每种数据类型底层都做了优化,目的就是为了追求更快的速度。

以上都是学习过程中的整理的笔记,会持续更新,如果有错误或者有疑问,欢迎一起交流吖~~