前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis原理概述和部署安装

Redis原理概述和部署安装

原创
作者头像
可为编程
修改2023-11-11 16:03:45
2640
修改2023-11-11 16:03:45
举报

🎈个人公众号:🎈 :✨✨✨ 可为编程✨ 🍟🍟 🔑个人信条:🔑 知足知不足 有为有不为 为与不为皆为可为🌵 🍉本篇简介:🍉 本篇详细阐述了Redis概述和安装,如有出入还望指正。

今天开启中间件专栏的第一篇文章,先以Redis中间件为例,从部署安装、封装使用、原理剖析、集群搭建、场景模拟等多个角度,全方位总结Redis各种场景下的使用特性和相关领域知识,将自己的经验和学习进行输出,如有纰漏,联系我更正,这是一个漫长的过程,关注我,你我一道同行。

1.1、安装redis

(1)下载redis

  1. https://download.redis.io/releases/

(2)将redis安装包拷贝到/opt/目录

(3)解压

  1. tar -zvxf redis-7.2.1.tar.gz

(4)安装gcc

  1. yum install gcc

(5)进入目录

  1. cd redis-7.2.1

(6)编译

  1. make

(7)执行make install进行安装

(8)查看安装目录:/usr/local/bin

目录介绍

  • redis-benchmark:性能测试工具,可以在自己本子进行调试,看看自己本子性能如何。
  • redis-check-aof:修复有问题的AOF文件,rdb和aof后面咱单独出一篇文章详细讲解。
  • redis-check-dump:修复有问题的dump.rdb文件
  • redis-sentinel:redis集群使用
  • redis-server:redis服务器启动命令
  • redis-clit:客户端,操作入口

1.2、启动redis

方式1:前台启动(不推荐)

执行redis-server命令,这种如果关闭启动窗口,则redis会停止。

方式2:后端启动(推荐)

后台方式启动后,关闭窗口后,redis不会被停止.

步骤如下

(1)复制redis.conf文件到/etc目录

  1. cp /opt/redis-6.2.1/redis.conf /etc

(2)使用vi命令修改/etc/redis.config中的配置,将后台启动设置daemonize改为yes,如下

  1. daemonize yes

(3)启动redis

  1. redis-server /etc/redis.conf

(4)查看redis进程

1.3、关闭redis

方式1:kill -9 pid

方式2:redis-cli shutdown

1.4、进入redis命令窗口

执行redis-cli即可进入redis命令窗口,然后就可以执行redis命令了。

1.5、redis命令大全

  1. http://doc.redisfans.com/

1.6、redis介绍相关知识

  • 默认端口6379
  • 默认16个数据库,类似数组的下标从0开始,初始默认使用0号库,后面会进行详细说明
  • 使用select <dbid>来切换数据库,如:select 1,切换到第2个库。
  • 统一密码管理,所有的库密码相同
  • dbsize:查看当前数据库的key的数量
  • flushdb:情况当前库
  • flushall:清空全部库

redis是单线程+多路IO复用技术,那问题来了,为啥单线程还这么快呢?多路复用技术又是啥尼?

这里咱先简单说一下,后面单独拿出一篇文章详细的进行分析,首先单线程是Redis的文件事件处理器的模型为单线程, Redis的文件事件处理器是一个单线程模型,采用IO多路复用机制同时监听多个socket,根据socket上的事件来选择对应的事件处理器来处理这个事件。具体来说,如果被监听的socket准备好执行accept、read、write、close等操作的时候,跟操作对应的文件事件就会产生,这时文件事件处理器就会调用之前关联好的事件处理器来处理这个事件。每个具体的事件处理器总和一个文件描述符相关,它使用描述符来识别事件、识别应用程序提供的服务。

多路复用是指使用一个线程来检测多个文件描述符(socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞到超时,得到就绪状态后,进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。

在Redis中,只有一个文件事件处理器。它由四个部分组成:套接字、I/O多路复用程序、文件时间分派器(dispatcher)、事件处理器。这个处理器是单线程的,采用IO多路复用机制同时监听多个socket,根据socket上的事件来选择对应的事件处理器来处理这个事件。Redis相比于memcache支持多数据类型,支持持久化,单线程和多路复用机制,而memcache采用串行+多线程+锁的实现原理。

Redis6.0中提供了多线程,命令解析和io数据读写这部分采用了多线程,而命令的执行还是采用的是单线程,多个客户端发送来的命令会在同一个线程去执行,相当于排队执行,效率极高。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1、安装redis
  • 1.2、启动redis
    • 方式1:前台启动(不推荐)
      • 方式2:后端启动(推荐)
      • 1.3、关闭redis
      • 1.4、进入redis命令窗口
      • 1.5、redis命令大全
      • 1.6、redis介绍相关知识
      相关产品与服务
      云数据库 Redis
      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档