前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Redis系列教程之环境安装与基础配置

Redis系列教程之环境安装与基础配置

原创
作者头像
兔云小新LM
发布于 2024-05-13 16:36:17
发布于 2024-05-13 16:36:17
1910
举报

Redis作为一种缓存型数据库,它是可以安装在我们常用的操作系统中,例如Mac、LinuxWindows。但是Redis官方是没有发布Windows版本,现有的Windows版本都是一些民间大佬开发提供。为什么Redis官方没有提供Windows版本,反而是推荐大家在Linux上使用Redis呢?从我个人的角度来看,可能分为如下几点:

1、底层网络模型。Redis作为一种单线程的服务,在运行的过程中也使用到了单线程轮询机制,在网络模型上用到了epoll;而Windows上的网络模型selector;两种网络模型从性能上来说,epoll比selector性能更加好。这也是大家在很多的开源、商用等服务软件上,研究底层网络时,发现这些软件底层基本都是采用的epoll网络模型。

2、作者习惯。这一点也是在网络上看到,或许具有一定的参考价值,但有待考证。Redis的作者个人是不看好Windows系统,因为将Redis的所有开发都投入到了Linux中。

这里重点讲到的网络模型,是因为很多的服务,例如MySQL的性能瓶颈在磁盘IO。Redis作为一款内存型的服务,对数据的读写都是去操作内存,因此磁盘IO这块就可以忽略不计,又因为是单线程模型,因此要解决性能瓶颈问题,应该重点放在网络IO、CPU、内存等方面考虑,尤其是CPU和内存极为重要。

环境安装

Redis服务的安装是非常简单的,也有很多的安装方式。例如源码编译安装,包管理工具安装,这里作为学习使用,推荐大家使用源码编译安装。如果你仍选择包工具安装,这里推荐几款安装方式。Mac推荐使用brew包管理工具进行安装,在Linux发行版上,Ubuntu的可以使用apt-get包管理工具、Centos推荐使用yum包管理工具。

现目前随着云原生容器技术的发展,可能很多的环境都是基于docker安装,实现跨平台的使用。在大家对Redis有一定的了解程度之后,强烈推荐使用docker这种方式来搭建环境。

Windows安装

Windows的版本可以使用微软官方GitHub仓库的安装包,不过该仓库也处于一些停止更新状态。打开GitHub官网地址,https://github.com/MicrosoftArchive/redis/releases直接下载最新的版本。

Snipaste_2023-11-03_23-01-57
Snipaste_2023-11-03_23-01-57

我这里使用的是Redis-x64-3.0.504.zip包,下载之后进行解压,会有如下一些文件,.exe的文件是Windows下的可执行文件,.conf是Redis的配置文件。在学习阶段你只需要关注这三个文件就可以了。

1、redis-server.exe文件是Redis服务启动可执行文件。

2、redis-cli.exe文件是Redis的客户端可执行文件,可以通过该工具直接连接到Redis服务,进行Redis命令行操作。

3、redis.windows.conf文件是Redis的配置文件,关于Redis的端口、内存大小、数据库目录、持久化等所有配置均在该文件里面。

首先点击执行redis-server.ext,会弹出一个命令窗口,保持该窗口处于打开状态(这样才能保证Redis的服务处于运行状态)。接着点击redis-cli.exe文件,就可以进入到Redis的命令行界面。由于我这里没有Windows操作环境,没法1:1的演示操作。如果遇到问题,可以反馈或者网上查阅资料。

Snipaste_2023-11-03_23-05-39
Snipaste_2023-11-03_23-05-39

Mac安装

在Mac上安装Redis,可以使用Mac常用的包管理工具brew进行安装,或者使用源码编译安装。由于下面会演示Linux源码编译安装,所以Mac就演示使用brew包管理工具进行安装。

关于brew包管理工具,这里就不单独介绍。可以通过官网地址进行了解。

1、查看Redis的版本。

代码语言:shell
AI代码解释
复制
brew search redis

2、安装指定的Redis版本。

代码语言:shell
AI代码解释
复制
brew install redis

3、安装成功之后,直接启动Redis服务。

代码语言:shell
AI代码解释
复制
brew service start redis

默认的启动方式,会读取配置文件/usr/local/etc/redis.conf。也可以自己单独创建一个配置文件,执行redis-server /path/redis.conf即可。

Linux安装

Linux操作系统,都带有自身的包管理工具,类似Mac上的有brew包管理工具一样。例如centos操作系统有yum,Ubuntu有apt-get,在Linux操作系统上安装,也可以直接使用包管理工具。但也有一个缺点,可能版本不是你需要的,可以升级系统源。但推荐使用源码编译安装的方式。这里以centos操作系统为例。

1、下载包文件。

代码语言:shell
AI代码解释
复制
# 下载对应的版本
cd /usr/local/ && wget https://download.redis.io/releases/redis-7.0.10.tar.gz
# 解压压缩包
tar -zxvf redis-7.0.10.tar.gz
# 重命名
mv redis-7.0.10 redis

你可以选择适合自己的版本,官方下载地址:https://download.redis.io/releases/

2、安装Redis,按照下面的命令,正常情况下安装就完成了。

代码语言:shell
AI代码解释
复制
cd redis && make && make install

3、启动Redis服务。

代码语言:shell
AI代码解释
复制
redis-server /usr/local/redis/redis.conf

守护进程启动

什么叫守护进程呢,上面安装的几种启动方式,在你运行启动Redis服务器后,会出现如下的内容:

当你关闭该窗口,就会发现Redis链接不上,这是因为关闭窗口时,Redis服务就自动退出。这是因为Redis的配置文件redis.conf中的配置项没有开启守护进程的模式。只要找到该文件,将该配置项的值设置为yes。如下配置:

代码语言:shell
AI代码解释
复制
daemonize yes

需要注意的是,在windows操作中,是不支持该配置项,只有在Linux系统和Mac系统才支持。

代码语言:shell
AI代码解释
复制
# On Windows, daemonize and pidfile are not supported.
# However, you can run redis as a Windows service, and specify a logfile.
# The logfile will contain the pid.

基础配置

安装好Redis之后,可以直接使用默认的配置,也可以自己单独修改一些配置,这里简单罗列几个基础的配置项。所有的配置项都在redis.conf文件中。

代码语言:shell
AI代码解释
复制
# 配置端口号
port 6379
# 配置日志文件
logfile "redis_log.log"
# 配置数据存储目录
dir /user/local/redis/db
# 配置数据库名称
dbfilename 6379.rdb
# 配置Redis密码
requirepass 6379

基础操作

Redis是一款c/s的服务,安装好服务器端,就可以使用不同的客户端进行连接。Redis默认也带有客户端操作工具redis-cli。直接使用命令连接即可。

代码语言:shell
AI代码解释
复制
redis-cli

如果你给Redis配置了密码,在连接时需要设置密码。

代码语言:shell
AI代码解释
复制
# 方式一
redis-cli -h 127.0.0.1 -p 6379 -a your_password
# 方式二
redis-cli进入命令行操作界面,然后在输入auth命令。
redis-cli
auth 123456

连接成功之后,就可以操作Redis。

代码语言:shell
AI代码解释
复制
> keys *
(empty list or set)
> set name 1
OK
> keys *
1) "name"

这里推荐一个在线Redis命令行工具,不过部分命令被禁用,是不支持执行。做一些基础的操作命令还是很方便的。也可以使用官方的一个演示命令窗口

教程回顾

1、安装Redis都有哪几种方式,基本的操作命令是什么?

2、Redis如何守护进程的方式运行?

3、Redis中如何配置端口号,以及日志文件

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
mysql主从复制,从搭建到使用
数据库世界里有一种奇妙的舞蹈,它叫做主从复制。就像是一场华丽的芭蕾,主数据库和从数据库在节奏的指挥下,优美地协调着动作,完成着数据的同步传递。而今天,我们将一起走进这场舞台,探索MySQL主从复制技术的神奇之处。无论您是观众还是舞者,这都将是一场精彩绝伦的表演!
一只牛博
2025/05/31
560
mysql主从复制,从搭建到使用
主从复制的原理
主从复制的原理 MySql主库在事务提交时会把数据变更作为事件记录在二进制日志Binlog中; 主库推送二进制日志文件Binlog中的事件到从库的中继日志Relay Log中,之后从库根据中继日志重做数据变更操作,通过逻辑复制来达到主库和从库的数据一致性; MySql通过三个线程来完成主从库间的数据复制,其中Binlog Dump线程跑在主库上,I/O线程和SQL线程跑着从库上; 当在从库上启动复制时,首先创建I/O线程连接主库,主库随后创建Binlog Dump线程读取数据库事件并发送给I/O线程,I/O
宇宙之一粟
2020/10/26
2940
结合实战,我为MySQL主从复制总结了几张图!
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2020/12/24
6680
结合实战,我为MySQL主从复制总结了几张图!
MySQL主从复制学习小记
MySQL 主从复制(replication)是一个异步的复制过程。从一个实例(Master)复制到另一个实例(Slave),整个过程需要由 Master 上的 IO 进程 和 Slave 上的 Sql 进程 与 IO 进程 共同完成。 首先 Master 端必须打开 binary log(bin-log),因为整个复制过程实际上就是 Slave 端从 Master 端获取相应的二进制日志,然后在本地完全顺序的执行日志中所记录的各种操作。 原理图如下:
芈亓
2023/09/26
2600
MySQL主从复制学习小记
MySQL主从复制详细介绍
MySQL内建的复制功能是构建基于MySQL的大规模、高性能应用的基础,复制功能的目的是构建高性能的应用,同时也是高可用性、可扩展性、灾难恢复、备份以及数据仓库等工作的基础。比较常见的用途有以下几种:
AsiaYe
2019/11/06
5930
MySQL主从复制详细介绍
高性能Mysql主从架构的复制原理及配置详解
Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。
黄规速
2022/04/14
3510
高性能Mysql主从架构的复制原理及配置详解
MySQL-binlog格式对主从复制的影响&MySQL主从复制的过程
http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/index.com.coder114.cn.html
小小工匠
2021/08/17
5950
CentOS 7搭建部署MySQL主从复制
1、做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
用户5766185
2019/07/08
2.7K0
CentOS 7搭建部署MySQL主从复制
MySQL主从复制详解
在MySQL中,主从架构应该是最基础、最常用的一种架构了。后续的读写分离、多活高可用架构等大多都依赖于主从复制。主从复制也是我们学习MySQL过程中必不可少的一部分,关于主从复制的文章有很多,笔者也来凑凑热闹,写写这方面的内容吧,同时分享下自己的经验和方法。
MySQL技术
2020/07/28
4220
MySQL主从复制详解
高性能Mysql主从架构的复制原理及配置详解
Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。
用户7353950
2022/05/11
5250
高性能Mysql主从架构的复制原理及配置详解
MySQL主从复制配置
Mysql中有一种日志叫做bin日志(二进制日志)。这个日志会记录下所有修改了数据库的SQL语句(INSERT,UPDATE,DELETE,ALTER TABLE,GRANT等等)。
Java帮帮
2018/12/24
4860
MySQL主从复制的实现过程
推荐阅读 微服务:springboot系列教程学习 源码:Javaweb练手项目源码下载 调优:十五篇好文回顾 面试笔试:面试笔试整理系列 一、什么是主从复制 将主数据库中的DDL和DML操作通过二进制日志传输到从数据库上,然后将这些日志重新执行(重做);从而使得从数据库的数据与主数据库保持一致。 二、主从复制的作用 1、主数据库出现问题,可以切换到从数据库。 2、可以进行数据库层面的读写分离。 3、可以在从数据库上进行日常备份。 三、复制过程 Binary log:主数据库的二进制日志。 Relay
企鹅号小编
2018/01/15
1K0
MySQL主从复制的实现过程
MySQL 主从复制原理
在实际生产环境中,如果对MySQL数据库的读和写都在一台数据库服务器中操作,无论是在安全性、高可用性,还是高并发等各个方面都是不能满足实际需求的,一般要通过数据库集群的主从复制机制来同步数据,再通过读写分离来提升数据库的并发负载能力
终有救赎
2023/11/11
2590
MySQL 主从复制原理
Mysql主从复制
(1)主从服务器操作系统版本和位数必须一致; (2)主节点(Master)和从节点(Slave)数据库版本必须一致; (3)主节点(Master)和从节点(Slave)数据库中的数据必须一致; (4)主节点(Master)需要开启二进制日志; (5)主节点(Master)和从节点(Slave)的 server-id 在局域网内必须唯一。
码客说
2022/12/05
1.3K0
Mysql主从复制
MySql主从复制,从原理到实践!
主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从数据库上,然后在从数据库上对这些日志进行重新执行,从而使从数据库和主数据库的数据保持一致。
macrozheng
2020/01/16
5420
MySql主从复制,从原理到实践!
docker 搭建mysql主从复制
sudo docker run -p 3307:3306 --name main_mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
用户10125653
2022/11/10
5760
docker 搭建mysql主从复制
使用Xtrabackup对MySQL做主从复制
mysqldump对于导出10G以下的数据库或几个表,还是适用的,而且更快捷。一旦数据量达到100-500G,无论是对原库的压力还是导出的性能,mysqldump就力不从心了。Percona-Xtrabackup备份工具,是实现MySQL在线热备工作的不二选择,可进行全量、增量、单表备份和还原。(但当数据量更大时,可能需要考虑分库分表,或使用 LVM 快照来加快备份速度了)。 2.2版本xtrabackup能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份,innobackupex通过perl封装了一层xtrabackup,对MyISAM的备份通过加表读锁的方式实现。2.3版本xtrabackup命令直接支持MyISAM引擎。
阿dai学长
2019/04/03
2.4K0
高可用架构-- MySQL主从复制的配置
环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso MySQL版本:mysql-5.6.26.tar.gz 主节点IP:192.168.1.205 主机名:edu-mysql-01 从节点IP:192.168.1.206 主机名:edu-mysql-02 主机配置:4核CPU、4G内存 依赖课程 《高可用架构篇--第13节--MySQL源码编译安装(CentOS-6.6+MySQL-5.6)》 MySQL主从复制官方文档 http://dev.mysql.com/doc/refma
思梦php
2018/03/09
1.7K0
高可用架构-- MySQL主从复制的配置
MySQL主从复制
MySQL复制功能提供分担读负载。 基于二进制日志的复制是异步的,那么复制有什么好处? 1.实现在不同服务器上的数据分布,利用二进制日志增量进行,不需要太多带宽,但是使用基于行的复制在进行大批量的更改时,会对带宽带来一定的压力。特别是跨IDC环境下进行复制,应该分批进行。 2.实现数据读取的负载均衡。可以通过DNS轮询的方式把程序的读连接分配到不同的备份数据库中。还有可以通过LVS+Keepalived等等。 3.增强了数据安全性,利用备库的备份来减少主库负载,还可以避免单点故障。值得注意的是,复制并不能替代备份。 4.实现数据库在线升级。
用户2032165
2018/12/04
1.3K0
MySQL主从复制
Mysql主从复制
Mysql主从复制也可以称为Mysql主从同步,它是构建数据库高可用集群架构的基础。它通过将一台主机的数据复制到其他一台或者多台主机上,并重新应用日志(realy log)中的SQL语句来实现复制功能。Mysql支持单向,双向,链式级联,异步复制,复制过程中一台服务器充当主库(master),而一个或者多个服务器充当从库(slave)
mikelLam
2022/10/31
1.4K0
相关推荐
mysql主从复制,从搭建到使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档