1.Redis是什么
REmote Dictionary Server(远程字典服务器)
Remote Dictionary Server(远程字典服务)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Value数据库提供了丰富的数据结构,例如String、Hash、List、set、Sortedset等等。数据是存在内存中的,同时Redis支持事务、持久化、LUA脚本、发布/订阅、缓存海汰、流技术等多种功能特性提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案.
Redis 是基于 Open Source BSD 协议,使用 C 语言编写的一种Key-Value(键值对)内存数据库.
2.Redis能干嘛
1.主流功能与应用
1.分布式缓存,挡在 MySQL 数据库之前的带刀侍卫
请求来,先在Redis里找,找到了直接返回(可以不麻烦MySQL),如找不到,再访问MySQL,同时回写给Redis,让下一次请求直接可以在Redis里找到
与传统数据库关系(mysql):
Redis是key-value数据库(NoSQL一种),mysql是关系数据库Redis数据操作主要在内存,而mysql主要存储在磁盘Redis在某一些场景使用中要明显优于mysql,比如计数器、排行榜等方面
Redis通常用于一些特定场景,需要与MysqI一起配合使用两者并不是相互替换和竞争关系,而是共用和配合使用
2.内存存储和持久化(RDB+AOF)
Redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务.
3.高可用架构搭配
1.单机
2.主从
3.哨兵
4.集群
4.缓存穿透,击穿,雪崩
5.分布式锁
6.队列
Reids提供list和set操作,这使得Redis能作为一个很好的消息队列平台来使用。
我们常通过Reids的队列功能做购买限制。比如到节假日或者推广期间,进行一些活动,对用户购买行为进行限制,限制今天只能购买几次商品或者一段时间内只能购买一次。也比较适合适用。
7.排行榜+点赞
在互联网应用中,有各种各样的排行榜,如电商网站的月度销量排行榜、社交APP的礼物排行榜、小程序的投票排行榜等等。Redis提供的区set数据类型能够快速实现这些复杂的排行榜。
比如小说网站对小说进行排名,根据排名,将排名靠前的小说推荐给用户
2.优势
1.性能极高:
Redis能读的速度是110000次/秒,写的速度是81000次/秒
2.数据类型丰富
Redis数据类型丰富,不仅仅支持简单的key-value类型的数据,司时还提供list,set,zset,hash等数据结构的存储
3.支持数据持久化
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用.
4.支持数据备份
Redis支持数据的备份,即master-slave模式的数据备份
3.Redis去哪下载
Redis - The Real-time Data Platform 英文官网
http://www.redis.cn/ 中文官网
redis中文文档 中文文档
Releases · redis/redis · GitHub Redis的官方文档
Redis7新特性:
4.Redis的安装配置
建议用Linux系统,因为可以复用以前的deploy函数
首先要在Linux上装gcc环境
gcc是linux下的一个编译程序,是C程序的编译工具。
SCC(GNU Compiler Collection)是 GNU(GNU's Not Unix)计划提供的编译器家族,它能够文持c,C++,Obiective-C,Fortran, Java 和Ada 等等程序设计语言前端,同时能够运行在 x86,x86-64,1A-64,PowerPC,SPARC和Alpha 等等几乎目前所有的硬件平台上。鉴于这些特征,以及 GCC 编译代码的高效性,使得 GCC 成为绝大多数自由软件开发编译的首选工具。虽然对于程序员们来说,编译器只是一个工具,除了开发和维护人员,很少有人关注编译器的发展,但是 GCC的影响力是如此之大,它的性能提升甚至有望改善所有的自由软件的运行效率,同时它的内部结构的变化也体现出现代编译器发展的新特征。
下载安装:
来到opt目录下
wget https://download.redis.io/releases/redis-7.4.0.tar.gz
解压
tar -zxvf redis-7.4.0.tar.gz
来到redis-7.4.0下执行make
make && make install
看到这句话,说明安装成功:
默认安装路径在usr/local/bin下
配置修改
好习惯:(重新拷贝一份配置文件到根目录的文件夹下,保证始终有一份原始数据,我们更改我们自定义拷贝的配置文件)
修改我们拷贝的配置文件:
启动服务
redis-server /myredis/redis7.conf
报错7734:C 29 Jul 2024 17:06:49.857 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
原因:它指出内存过度提交(memory overcommit)功能没有被启用。在Linux系统中,内存过度提交允许系统分配比物理内存加上交换空间总和更多的内存给进程。当这个功能没有被启用时,Redis在执行后台保存(background save)或复制(replication)操作时,如果系统内存较低,可能会失败。
解决方法:
编辑/etc/sysctl.conf
文件(告诉系统启用内存过度提交):添加 vm.overcommit_memory = 1
可以通过重启系统来应用这些更改,或者通过运行以下命令来立即应用更改(无需重启):
sudo sysctl vm.overcommit_memory=1 |
redis启动成功;