redis 介绍和数据结构及如何实现

一、redis概述

(一)什么是redis?

        Redis(Remote Dictionary Server)是一个开源的、基于内存的、可选持久化的日志型Key-Value数据库编写,支持网络操作,并提供多种语言的API。Redis支持多种数据结构,包括字符串(string)、列表(list)、集合(set)、有序集合(zset)和哈希(hash),并且这些数据类型都支持丰富的操作,如push/pop、add/remove以及取交集、并集和差集等,这些操作都是原子性的。

        Redis将数据存储在内存中,以保证高速的读写操作,同时支持将数据周期性地写入磁盘或记录追加操作,以实现持久化。它还支持主从同步,允许数据从主服务器复制到多个从服务器,以确保数据的高可用性和备份。

        Redis的性能非常高,它在某些测试中实现了每秒读取110,000次和写入81,000次的速度。为了实现高并发性能,Redis使用非阻塞I/O和IO多路复用技术,如epoll(在Linux上)。 此外,Redis还提供了多种特性,如发布/订阅、Lua脚本、事务、管道、位图、键过期和哨兵监控机制等。它的一些优势包括简单稳定的源码、单线程模型、快速的单节点读写速度、丰富的数据类型、数据持久化能力、数据备份功能以及原子性操作。

        总的来说,Redis是一个高性能、多功能的Key-Value数据库,适用于多种应用场景,如数据库、缓存和消息中间件,并且在计时器、消息队列、排行榜、社交网络等领域有广泛的应用。

(二)redis为什么这么快?

1.redis单线程

主要是指Redis的网络IO和键值对读写是由一个线程来完成的,Redis在处理客户端的请求时包括获取 (socket 读)、解析、执行、内容返回 (socket 写) 等都由一个顺序串行的主线程处理,这就是所谓的“单线程”。这也是Redis对外提供键值存储服务的主要流程。

2.redis采用多路复用的技术

redis6.x 开始采 io 多路复⽤ ,让 单个线程⾼效的处理多个连接请求 (尽量减少⽹络 IO 的时间消耗),将最耗时的 Socket 读取、请求解析、写⼊单独 外包
出去,剩下的 命令执⾏仍然由主线程串⾏执⾏并和内存的数据交互

(三)redis的数据结构

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值