Redis7--基础篇1(概述,安装、卸载及配置)


1. Redis概述

1.1 什么是Redis

Redis:REmote Dictionary Server(远程字典服务器)

Remote Dictionary Server(远程字典服务)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Value数据库提供了丰富的数据结构,例如String、Hash、List、Set、SortedSet等等。数据是存在内存中的,同时Redis支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等多种功能特性提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案

1.2 Redis之父

Redis之父Salvatore Sanfilippo,一名意大利程序员,大家更习惯称呼他Antirez

Github:https://github.com/antirez

个人博客:http://antirez.com/latest/0

1.3 Redis能做什么(主流功能与应用)

  • 分布式缓存

    与传统数据库关系(mysql)

    Redis是key-value数据库(NoSQL一种),mysql是关系数据库

    Redis数据操作主要在内存,而mysql主要存储在磁盘

    Redis在某一些场景使用中要明显优于mysql,比如计数器、排行榜等方面

    Redis通常用于一些特定场景,需要与Mysql一起配合使用

    两者并不是相互替换和竞争关系,而是共用和配合使用

  • 内存存储与持久化(RDB+AOF)

    Redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务。

  • 高可用架构搭建

    单机、主从、哨兵、集群

  • 缓存穿透、击穿、雪崩

  • 分布式锁

  • 队列

    Reids提供list和set操作,这使得Redis能作为一个很好的消息队列平台来使用。

    我们常通过Reids的队列功能做购买限制。比如到节假日或者推广期间,进行一些活动,对用户购买行为进行限制,限制今天只能购买几次商品或者一段时间内只能购买一次。也比较适合适用。

  • 实现排行榜、点赞等功能

  • 优势

    性能极高 - Redis读的速度是110000次/秒,写的速度是81000次/秒。

    数据类型丰富,不仅仅支持k-v类型的数据,同时还提供了list、set、zset、hash等数据结构的存储。

    支持持久化,可将内存中的数据存入写入到磁盘中。

    支持数据备份,即master-slaver模式的数据备份

  • 一图流概括介绍:

  • 总结

1.4 下载、安装及参考资料

下载地址:
https://redis.io

http://www.redis.cn/

https://redis.io/download/

redis-7.0.0.tar.gz

历史版本:

文档下载:
https://www.redis.com.cn/documentation.html

Redis源码地址:
https://github.com/redis/redis

Redis在线测试:
https://try.redis.io/

Redis在线参考:
http://doc.redisfans.com/

1.5 Redis迭代演化和Redis7新特性浅谈

  • 重要版本

    5.0版本是直接升级到6.0版本,对于这个激进的升级,Redis之父antirez表现得很有信心和兴奋,所以第一时间发文来阐述6.0的一些重大功能"Redis 6.0.0 GA is out!"。

    随后Redis再接再厉,直接王炸Redis7.0---2023年爆款

    2022年4月27日Redis正式发布了7.0更新(其实早在2022年1月31日,Redis已经预发布了7.0rc-1,经过社区的考验后,确认没重大Bug才会正式发布)

  • 学习视频

    哔哩哔哩查找尚硅谷之Redis教学视频

  • 新特性

    Redis Functions

    Client-eviction

    Muti-part AOF

    ACL V2

    新增命令

    listpack代替ziplist

    listpack 是用来替代 ziplist 的新数据结构,在 7.0 版本已经没有 ziplist 的配置了(6.0版本仅部分数据类型作为过渡阶段在使用)

    底层性能提升(与编码关系不大)

总体概述:

大体和之前的redis版本保持一致和稳定,主要是自身底层性能和资源利用率上的优化和提高,如果你生产上系统稳定,不用着急升级到最新的redis7版本,当然,O(∩_∩)O哈哈~,如果你是从零开始的新系统,直接上Redis7.0-GA版。

多AOF文件支持 7.0 版本中一个比较大的变化就是 aof 文件由一个变成了多个,主要分为两种类型:基本文件(base files)、增量文件(incr files),请注意这些文件名称是复数形式说明每一类文件不仅仅只有一个。在此之外还引入了一个清单文件(manifest) 用于跟踪文件以及文件的创建和应用顺序(恢复)
config命令增强 对于Config Set 和Get命令,支持在一次调用过程中传递多个配置参数。例如,现在我们可以在执行一次Config Set命令中更改多个参数: config set maxmemory 10000001 maxmemory-clients 50% port 6399
限制客户端内存使用 Client-eviction 一旦 Redis 连接较多,再加上每个连接的内存占用都比较大的时候, Redis总连接内存占用可能会达到maxmemory的上限,可以增加允许限制所有客户端的总内存使用量配置项,redis.config 中对应的配置项 // 两种配置形式:指定内存大小、基于 maxmemory 的百分比。 maxmemory-clients 1g maxmemory-clients 10%
listpack紧凑列表调整 listpack 是用来替代 ziplist 的新数据结构,在 7.0 版本已经没有 ziplist 的配置了(6.0版本仅部分数据类型作为过渡阶段在使用)listpack 已经替换了 ziplist 类似 hash-max-ziplist-entries 的配置
访问安全性增强ACLV2 在redis.conf配置文件中,protected-mode默认为yes,只有当你希望你的客户端在没有授权的情况下可以连接到Redis server的时候可以将protected-mode设置为no
Redis Functions Redis函数,一种新的通过服务端脚本扩展Redis的方式,函数与数据本身一起存储。 简言之,redis自己要去抢夺Lua脚本的饭碗
RDB保存时间调整 将持久化文件RDB的保存规则发生了改变,尤其是时间记录频度变化
命令新增和变动 Zset (有序集合)增加 ZMPOP、BZMPOP、ZINTERCARD 等命令 Set (集合)增加 SINTERCARD 命令 LIST (列表)增加 LMPOP、BLMPOP ,从提供的键名列表中的第一个非空列表键中弹出一个或多个元素。
性能资源利用率、安全、等改进 自身底层部分优化改动,Redis核心在许多方面进行了重构和改进主动碎片整理V2:增强版主动碎片整理,配合Jemalloc版本更新,更快更智能,延时更低 HyperLogLog改进:在Redis5.0中,HyperLogLog算法得到改进,优化了计数统计时的内存使用效率,7更加优秀更好的内存统计报告 如果不为了API向后兼容,我们将不再使用slave一词...(政治正确)

2. 安装、卸载、配置

可以安装到购买的各种云服务器,或者安装到虚拟机。默认Redis安装到Linux系统下,因为不会有企业将Redis安装到Windows系统下。

2.1 检查安装环境

Linux系统安装Redis必须具备GCC编译环境

查看是否有gcc编译器

shell 复制代码
gcc -v

安装gcc编译器

shell 复制代码
yum -y install gcc-c++

2.2 安装步骤

  • 下载安装包并放入/opt目录下
shell 复制代码
wget https://download.redis.io/releases/redis-7.0.0.tar.gz
  • 解压缩
shell 复制代码
tar -zxvf redis-7.0.0.tar.gz
  • 执行make命令进行编译
shell 复制代码
make && make install


2.3 卸载步骤

  • 停止redis-server服务
  • 删除 /usr/local/lib 目录下与redis相关的文件
shell 复制代码
ls -l /usr/local/bin/redis-*
rm -rf /usr/local/bin/redis-*

2.4 启动服务

  • 默认的安装目录为/usr/local/bin/,类似于C:\Program Files

    • redis-benchmark
      性能测试工具,服务启动后运行该命令,查看本机性能
    • redis-check-aof
      修复有问题的AOF文件
    • redis-check-rdb
      修复有问题的RDB文件
    • redis-cli
      客户端服务
    • redis-sentinel
      Redis集群服务
    • redis-server
      Redis服务器启动服务
  • 定制启动配置文件

    • 备份启动配置文件
    • 修改配置文件
      • redis.conf配置文件,改完后确保生效,记得重启,记得重启
      • 默认daemonize no 改为 daemonize yes
      • 默认protected-mode yes 改为 protected-mode no
      • 默认bind 127.0.0.1 改为 直接注释掉(默认bind 127.0.0.1只能本机访问)或改成本机IP地址,否则影响远程IP连接
      • 添加redis密码 改为 requirepass 你自己设置的密码


  • 执行启动命令

    shell 复制代码
    redis-server /myredis/redis7.conf
  • 连接Redis数据库并验证

    shell 复制代码
    #登陆
    redis-cli -a 123456  -p 6379
    #验证
    127.0.0.1:6379> ping

2.5 关闭服务

  • 单实例关闭

    shell 复制代码
    redis-cli -a 123456 shutdown
  • 多实例关闭

    shell 复制代码
    redis-cli -a 123456 -p 6379 shutdown

相关推荐
水月梦镜花9 小时前
redis:list列表命令和内部编码
数据库·redis·list
掘金-我是哪吒10 小时前
微服务mysql,redis,elasticsearch, kibana,cassandra,mongodb, kafka
redis·mysql·mongodb·elasticsearch·微服务
ketil2712 小时前
Ubuntu 安装 redis
redis
王佑辉13 小时前
【redis】redis缓存和数据库保证一致性的方案
redis·面试
Karoku06614 小时前
【企业级分布式系统】Zabbix监控系统与部署安装
运维·服务器·数据库·redis·mysql·zabbix
gorgor在码农14 小时前
Redis 热key总结
java·redis·热key
想进大厂的小王14 小时前
项目架构介绍以及Spring cloud、redis、mq 等组件的基本认识
redis·分布式·后端·spring cloud·微服务·架构
Java 第一深情14 小时前
高性能分布式缓存Redis-数据管理与性能提升之道
redis·分布式·缓存
minihuabei19 小时前
linux centos 安装redis
linux·redis·centos
monkey_meng21 小时前
【Rust中多线程同步机制】
开发语言·redis·后端·rust