编译安装redis实验文档

news/2025/1/15 14:03:54/

一、什么是Redis

        Redis是一种主流的非关系型数据库,是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。它支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储,同时Redis还支持数据的备份,即master-slave模式的数据备份。

        与关系型数据库不同的是,关系型数据天然就是表格式的,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。与其相反,非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起。非关系型数据通常存储在数据集中,就像文档、键值对或者图结构。你的数据及其特性是选择数据存储和提取方式的首要影响因素。同时在业务增长的情况下SQL与NoSQL的扩展方式也不同,SQL数据库是纵向扩展,也就是说提高处理能力,使用速度更快速的计算机,而NoSQL数据库是横向扩展的。因为非关系型数据存储天然就是分布式的,扩展可以通过给资源池添加更多普通的数据库服务器(节点)来分担负载。

二、如何从零开始编译安装一个Redis数据库

1.实验环境

虚拟机版本VMware® Workstation 16 Pro 16.2.4 build-20089737
镜像版本CentOS-7-x86_64-DVD-1708.iso
Redis版本Redis-5.0.7

 2.实验要求

        通过编译安装,安装Redis数据库并验证性能。

3.系统配置

systemctl stop firewalld

setenforce 0                                                        // 先关闭防火墙工具

yum install -y gcc gcc-c++ make                         //安装编译安装所需要的依赖包

tar zxvf redis-5.0.7.tar.gz -C /opt/                        //将redis的软件包解压到opt下

cd /opt/redis-5.0.7/                                                //进入到redis文件夹内

make                                                                        //编译

make PREFIX=/usr/local/redis install                        //指定安装目录


#由于Redis源码包中直接提供了 Makefile 文件,所以在解压完软件包后,不用先执行 ./configure 进行配置,可直接执行 make 与 make install 命令进行安装。

cd /opt/redis-5.0.7/utils

./install_server.sh

#执行软件包提供的 install_server.sh 脚本文件设置 Redis 服务所需要的相关配置文件


回车4次,选择默认设置。

Please select the redis executable path [] /usr/local/redis/bin/redis-server      

#在选择可执行文件路径这一栏需要手动修改为 /usr/local/redis/bin/redis-server ,注意要一次性正确输入。

结束后确认信息如下:
Selected config:
Port           : 6379                                #默认侦听端口为6379
Config file    : /etc/redis/6379.conf                #配置文件路径
Log file       : /var/log/redis_6379.log            #日志文件路径
Data dir       : /var/lib/redis/6379                #数据文件路径
Executable     : /usr/local/redis/bin/redis-server    #可执行文件路径
Cli Executable : /usr/local/bin/redis-cli            #客户端命令工具
----------------------------------------------------------------------------------------------------------

#把redis的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/redis/bin/* /usr/local/bin/

#当 install_server.sh 脚本运行完毕,Redis 服务就已经启动,默认监听端口为 6379
netstat -natp | grep redis

 #Redis 服务控制
/etc/init.d/redis_6379 stop                #停止
/etc/init.d/redis_6379 start            #启动
/etc/init.d/redis_6379 restart            #重启
/etc/init.d/redis_6379 status            #状态

#修改配置 /etc/redis/6379.conf 参数
vim /etc/redis/6379.conf
bind 127.0.0.1 192.168.254.106                #70行,添加 监听的主机地址


port 6379                                    #93行,Redis默认的监听端口


daemonize yes                                #137行,启用守护进程


pidfile /var/run/redis_6379.pid                #159行,指定 PID 文件

loglevel notice                                #167行,日志级别

 
logfile /var/log/redis_6379.log                #172行,指定日志文件

/etc/init.d/redis_6379 restart                        //重启redis服务

使用redis-cli登录数据库 

 

使用redis-benchmark工具进行数据库测试。

#向 IP 地址为 192.168.254.106、端口为 6379 的 Redis 服务器发送 100 个并发连接与 100000 个请求测试性能

redis-benchmark -h 192.168.254.106 -p 6379 -c 100 -n 100000

#测试存取大小为 100 字节的数据包的性能

redis-benchmark -h 192.168.10.161 -p 6379 -q -d 100


http://www.ppmy.cn/news/35762.html

相关文章

node_fs文件系统模块

1. 写入内容到文本文件里 Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。 异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包…

VS Code 将推出更多 AI 功能给 Java 开发者

大家好,欢迎来到我们的二月更新!我们将为您带来与 JUnit 5 并行测试相关的新功能以及用于 Spring Boot Dashboard 的过滤功能。另外,OpenAI 和 ChatGPT 是最近的热点,所以在 GitHub Copilot 方面也有一些令人激动的消息&#xff0…

Vue3通透教程【八】获取DOM、操作组件

文章目录 🌟 写在前面🌟 Vue2 ref 的使用🌟 Vue3获取DOM🌟 Vue3操作组件🌟 写在最后🌟 写在前面 专栏介绍: 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章,应粉丝要求开始更新 Vue3 的相关技术文章,Vue 框架目前的地位大家应该都晓得,所谓三大框架使用人数最…

「解析」牛客网-华为机考企业真题 21-40

又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工…

GPS时间序列分析---剔除跳跃点,拟合时间序列

通常利用GPS时间序列进行数据分析时,会遇到大地震的发生,这个时候会导致GPS的观测结果出现很大的跳跃值,这对后续的数据处理和分析带来了困难。这里分享一个最近了解的,可以用于处理这一问题的工具包---TSAnalyzer。下面主要介绍该…

javascript常用的一些公共方法

获取当前时间 获取当前时间并补零的 JavaScript 方法: function getCurrentDateTime() {const now new Date();let year now.getFullYear();let month now.getMonth() 1;let day now.getDate();let hours now.getHours();let minutes now.getMinutes();let seconds n…

面试--每日一经

操作系统 死锁 死锁:是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。   死锁的四个必要条件 互斥条件:一个资源每次只能被一个进…

ANR系列(一)——ANR源码拆解之Service的触发

前言 关于Service的ANR场景还是比较少见的,它的ANR设计原理也是比较简单,在很多监控的方案中都可以看得到 ANR触发场景 通过查阅Android官方文档,我们知道出现以下任何情况,系统都会针对我们的应用触发ANR: Servic…