Redis初识
本文将从Redis简介、Redis特性回顾、Redis安装、Redis典型应用场景四部分进行介绍Redis,读完本文,你将会对Redis的特性和功能有初步的了解。
Redis简介
Redis是什么?
Redis是一个开源的(BSD许可)、速度非常快的非关系数据库(non-relational database),它可以存储键(key)与5中不同数据类型的值(value)之间的映射(mapping)。了解Redis数据结构可以参考Redis数据结构和常用API。
谁在使用Redis?
Redis特性回顾
-
速度快
Redis能读的速度是110000次/s,写的速度是81000次/s 。
思考:Redis速度为什么这么快?
其实,Redis的数据存储于内存中。有计算机方面基础知识的知道,从寄存器到硬盘,速度越来越慢,空间越来越大,价格越来越便宜,正如下面这张图所示:
下面这张表更直观:
类型
|
每秒读写次数
|
随机读写延迟
|
访问带宽
|
内存
|
千万级
|
80ns
|
5GB
|
SSD盘
|
35000
|
0.1-0.2ms
|
100-300MB
|
机械盘
|
100左右
|
10ms
|
100MB左右
|
因为Redis数据存储于内存中,所以速度性能优于存储于硬盘的MySQL数据库。
-
持久化(断电不丢失数据)
Redis所有数据保持在内存中,对数据的更新将异步保存到磁盘上。
Redis拥有两种不同形式的持久化方法,他们都可以用小而紧凑的格式将存储在内存中的数据写入硬盘:第一种持久化方法为时间点转储(point-in-time dump),转储操作既可以在“指定时间段内有指定数量的写操作执行”这一条件被满足时执行,又可以通过调用两条转储到硬盘命令中的任何一条来执行;第二种持久化方法将所有修改了的数据库的命令都写入一个只追加文件里面,用户可以根据数据的重要程度,将只追加写入设置为从不同步、每秒同步一次或者每写入一个命令就同步一次。
-
多种数据结构
Redis支持 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
另外还有BitMap:位图;HyperLogLog:超小内存唯一值计数;GEO:地理信息位置。
-
支持多种编程语言
Redis支持Java、PHP、Python、Ruby、Lua、Node Js等编程语言。
-
功能丰富
Redis支持发布订阅、Lua脚本、事务、pipeline(流水线)等功能。
-
简单
Redis不依赖外部数据库;
Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。
-
主从复制
执行复制的从服务器会连接上主服务器,接收主服务器发送的整个数据库的初始副本;之后主服务器执行的写命令,都会被发送给所有连接着的从服务器去执行,从而实现实时更新从服务器的数据集。因为从服务器包含的数据会不断地进行更新,所以客户端可以向任意一个从服务器发送读请求,以此来避免对主服务器进行集中式的访问。
-
高可用、分布式
Redis-Sentinel(v2.8)支持高可用
Redis-Cluster(v3.0)支持分布式
Redis安装
Linux安装(Centos 7为例)
$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz
$ tar xzf redis-5.0.3.tar.gz
$ cd redis-5.0.3
$ make MALLOC=libc
$ src/redis-server
Windows安装
下载地址:https://github.com/MSOpenTech/redis/releases。
下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。
双击redis-server.exe即可启动:
如果想方便的话,可以把 redis 的路径加到系统的环境变量里,可以直接通过redis-server启动。
可执行文件说明
redis-server:Redis服务器
redis-cli:Redis命令行客户端
redis-benchmark:Redis性能测试工具
redis-check-aof:AOF文件修复工具
redis-check-dump:RDB文件检查工具
redis-sentinel:Sentinel服务器
启动方法和如何选择
1.修改redis.conf文件:修改daemonize为yes,即默认以后台程序方式运行。
常用配置:
daemonize -->是否是守护进程(no|yes) port --> Redis对外端口号 logfile -->Redis日志系统 dir -->Redis工作目录
2.然后使用redis.conf启动
cd redis-5.0.3/ ./redis-server /usr/local/redis-5.0.3/redis.conf
Redis典型使用场景
作为NoSQL数据库,Redis不适合交易场景,主要用来做数据分析、报表、数据挖掘、推荐、日志处理等非核心交易场景,如:
-
缓存系统
-
计数器:转发数、点赞数、播放数等
-
消息队列系统
-
排行榜
-
社交网络
-
实时系统
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具