【Redis】Redis的概念 | 特性 | 应用场景 | 安装 | 客户端

文章目录

Redis

一、认识Redis

  • Redis是一个开源的,在内存中存储数据。在分布式系统中更有优势。如果是单机环境下,直接通过变量存储数据比用Redis更有优势。在分布式系统中,要想多个服务器共享同一份数据,同时又想让数据在内存中,就可以选择Redis.

  • 进程是具有隔离性的,分布式系统会设计到多个进程。多个进程在不同的主机上,要想直接访问其他进程内存当中的变量,突破进行的隔离性,就极为困难。Redis就相当于对这样是需求,进行了封装。通过进程之间的通信(网络 )

  • 因此,Redis就是基于网络,将自己内存中的变量,提供给本机别的进程、别的主机的进程来使用。

  • Redis可以作为数据库来使用,要MySQL快很多(MySQL最大的缺点,就是访问速度慢)。但是相对的,Redis的存储空间是有限的。要同时解决存储量和访问速度的问题,可以将Redis和MySQL结合使用。也就是说,用Redis来作为MySQL的Cache。将一些热点数据用Redis来存储,将全量数据用MySQL来存储。

    二八原则:20%的热点数据可以满足80%的访问需求

    虽然利用了Redis速度快和MySQL存储多的特点,但是提高了系统的复杂度。同时,如果发生数据的修改,要考虑Redis和MySQL的数据同步问题。世上亦无两全法,没有银弹!要根据场景来进行选择。

  • Redis的初心是用来作为 消息中间件(消息队列),是分布式系统下的生产者-消费者模型。

二、Redis的特性

  • 是非关系型数据库:在内存中通过"键值对"来存储数据。(key都是String ,value是hash/list等数据结构)

  • 可编程操作:简单的交互命令进行操作、Lua脚本,来批量执行

  • 可扩展性:Redis提供了一组API,可以在原有的基础上进行扩展(C/C++/Rust 语言编写Redis扩展 。本质上是一个动态链接库)

  • 持久化:Redis是把数据存储在内存上。而内存上的数据是"易失"的。Redis会把数据存储一份在硬盘上。以内存为主,硬盘为辅。硬盘相当于对数据进行了备份,如果Redis重启,就会加载硬盘中备份的数据,使内存恢复到重启前的状态。

  • 支持集群:水平扩展,类似于分库分表。一个Redis存储的空间有限,引入多个主机,部署多个Redis节点,每个Redis存储数据的一部分。

  • 高可用:冗余/备份 。Redis自身支持"主从"结构。从节点相当于主节点的备份

  • 速度快:

    1.数据存在硬盘中,比访问硬盘快。

    2.Redis的核心功能都是比较简单的逻辑。

    3.Redis使用了IO多路复用的方式(epoll)用一个线程来管理很多个Socket

    4.Redis使用的是单线程模型(高版本引入了多线程)。单线程模型,减少了不必要线程之间的竞争开销

三、Redis的应用场景

1.Redis可以作为数据库,存的是全量数据。

2.Redis作为缓存,存的是部分数据,全量数据以MySQL为主。

3.会话存储。1.负载均衡器把同一个用户的请求分配到同一个机器上。2.把会话数据独立出来,放在独立的机器上存储(Redis)。后续每个应用服务器在读取会话时,先访问Redis.不管请求到哪个应用服务器上,都是从Redis拿到的会话。如果应用服务器重启,会话数据就不会丢失。(也不是不能丢,叫用户再登录一下)

4.作为消息队列(服务器)实现网络版本的生产者-消费者模型。

1,解耦合

2.削峰填谷

四、安装Redis

版本:Redis5 Linux版本:Ubuntu

1.切换root用户 su

2.apt命令来搜索Redis : apt search redis

3.安装 :apt install redis

4.验证:netstat -anp | grep redis Redis的默认端口是6379

5.发现当前是环回IP,需要手动修改配置文件,将IP进行修改。绑定环回IP,意味着只能由当前主机来访问,跨主机就访问不了了。

复制代码
cd /etc/redis/redis.conf
//找到配置文件
bind 后面的127.0.0.1 ::1  改为 0.0.0.0 ::1

protected-mode yes 改为 no

6.重启服务器

复制代码
service redis-server restart

7.使用Redis自带的客户端来连接服务器

复制代码
redis-cli     ping ->pong 表示正常工作    ctrl+d 退出redis客户端

五、Redis的客户端

  • Redis也是一个客户端-服务器结构

客户端:

1.自带的命令行客户端 redis-cli 命令

复制代码
redis-cli -h 127.0.0.1 -p 6379

2.图形化界面客户端(桌面程序、Web程序)

3.基于redis的api自行开发客户端

点击移步博客主页,欢迎光临~

相关推荐
IvorySQL10 分钟前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
·云扬·20 分钟前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德23 分钟前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫1 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i1 小时前
完全卸载MariaDB
数据库·mariadb
期待のcode1 小时前
Redis的主从复制与集群
运维·服务器·redis
纤纡.1 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
jiunian_cn1 小时前
【Redis】渐进式遍历
数据库·redis·缓存
橙露2 小时前
Spring Boot 核心原理:自动配置机制与自定义 Starter 开发
java·数据库·spring boot
冰暮流星2 小时前
sql语言之分组语句group by
java·数据库·sql