下文笔者将向所有爱学习的小伙伴讲述Redis的简介,如下所示
Redis简介
Redis(Remote Dictionary Server)远程字典服务
Redis免费开源,遵守BSD协议,截止(202306)最新版本是7.0
Redis由意大利人Salvatore Sanfilippo使用 C 语言编写
Redis是一个名副其实的内存性数据库,我们常称之为 NoSQL数据库
Redis使用非常广泛,目前国内所有的大厂都在使用Redis
如:京东,美团,字节,新浪,腾讯、阿里、Twitter、Github 等
所有的大厂都在使用redis
Redis的架构
Redis分为服务端和客户端
客户端和服务端可在同一台计算机上
也可位于不同的计算机上
Redis优点
性能超强:
Redis基于内存实现数据存储
它的读取速度是110000次/s
写速度是 81000次/s;
用途广泛:
Redis应用场景广泛
如:缓存(布隆过滤器、分布式锁)
消息队列
搭建Redis集群
等
命令提示功能:
Redis客户端拥有强大的命令提示功能
使用起来非常的方便
降低学习门槛
可移植性:
Redis使用ANSI(标准)C语言编写
能在大多数操作系统上运行
如:
Linux,Mac,Solaris等
常见的其他内存数据库
除Redis之外
还有Oracle Berkeley DB
SQlite(轻量级内存数据库)
Memcache(键值型分布式缓存数据库)
Altibase(基于内存的高性能数据库)
Redis同其他内存数据库的不同特性
Redis不仅可以将数据完全保存在内存中
还可以通过磁盘实现数据的持久存储;
Redis支持丰富的数据类型
如:string、list、set、zset、hash 等多种数据类型;
Redis支持主从同步
即 master-slave 主从复制模式
数据可以从主服务器向任意数量的从服务器上同步,有效地保证数据的安全性;
Redis支持多种编程语言:
如:C、C++、Python、Java、PHP、Ruby、Lua 等语言。
Redis与其他数据库对比
名称 | 类型 | 数据存储选项 | 备注 |
Redis | 基于内存存储的键值非关系型数据库 | 字符串、列表、散列、有序集合、无序集合 | 发布与订阅、主从复制、持久化存储等 |
Memcached | 基于内存存储的键值 缓存型数据库 | 键值之间的映射 | 为提升性能构建了多线程服务器 |
MySQL | 基于磁盘的关系型数据库 | 每个数据库可以包含多个表,每个表可以包含多条记录;
支持第三方扩展。 | 支持 ACID 性质、主从复制和主主复制 |
MongoDB 基于磁盘存储的非关系文档型数据库 | 每个数据库可以包含多个集合,每个集合可以插入多个文档 | 支持聚合操作、主从复制、分片和空间索引 |
Redis同SQL数据库的不同之处
1.Redis无需新建数据库,系统自带16个数据库(0~15)
默认使用0库
同一个库中,key是唯一值,无重复
2.Redis的底层全部是key value的模式存储数据
3.Redis没有表的概念,我们只能借助不同的数据类型和key规划存储位置
Redis应用场景
主要用作缓存,为系统提速,使其更高效
例:将热点数据放入到redis中,可减少数据库的压力
将大查询的数据库缓存,可使系统提速
将首页缓存,可使系统提速,提高响应时间
Redis注意事项
Redis所使用的存储空间在内存中,所以操作速度非常快
但内存比较稀缺,所以我们必须合理的使用内存
尽量缺少存储的信息,避免出现超大key value(笔者建议不要超过512MB)