当前位置: 首页 > news >正文

macOS install redis遇到的bug(tar包,homebrew安装,守护进程redis.conf配置)

官网下载tar包再make install

首先是sudo make test的时候一直报

!!! WARNING The following tests failed:

*** [err]: trim on SET with big value in tests/unit/type/string.tcl Expected [r memory usage key] < 42000 (context: type source line 478
file /usr/local/redis-7.0.12/tests/unit/type/string.tcl cmd {assert
{[r memory usage key] < 42000}} proc ::test)

解决方法:
因为r set key和Mac m1芯片的内存配置不同,引用掉这段test
https://blog.csdn.net/sun_kingngfyncfh/article/details/130744756
https://github.com/redis/redis/pull/11878/files/859dd6c8e91599d8cf013ff1b7758f308dbfcfc4

这个可以成功make test之后,sudo make 和make install又开始报warning
/bin/sh:1:pkg-config: not found

解决方案:
莫名其妙,但还是试着去安装了python tcl tk的包,useles,但看到有人说出现这个也不影响,之后确实可以make install。

但会一直重复提示Hint: It’s a good idea to run ‘make test’ 😉

解决方案:run make distclean
and again sudo make install

偶尔可以,但还是没有装上,放弃make安装了

brew install

后来看到官网给macos的安装方法:
https://redis.io/docs/getting-started/installation/install-redis-on-mac-os/
很简单的傻瓜式安装😢,想不明白折腾着包安装图啥,谢谢homebrew

配置redis.conf守护进程

homebrew安装完之后,在哪里找conf配置文件呢?
请添加图片描述

brew list redis

会先找到redis相关文件的位置
安装路径一般在 /usr/local/Cellar/redis/{version}或者/opt/homebrew/Cellar/redis/7.0.12/bin/里有redis-server

cd /opt/homebrew/Cellar/redis/7.0.12/bin/
open ./

发现没有conf文件,接着打开

cat homebrew.mxcl.redis.plist

发现有

请添加图片描述
找到啦!

cd /opt/homebrew/etc/
cp redis.conf /opt/homebrew/Cellar/redis/7.0.12/bin/

没有直接修改而是拷贝了以防修改错误,接着修改conf文件变成守护进程

vim redis.conf
daemonizeno改为yes
daemonize yes
默认绑定的是回环地址,默认不能被其他机器访问
bind 0.0.0.0
是否开启保护模式,由yes该为no
protected-mode no

./redis-server redis.conf
运行守护进程

Warning: Could not create server TCP listening socket *:6379: bind: Address already in use 11637:M 03 Aug 2023 09:52:54.996 # Failed listening on port 6379 (TCP), aborting.

跑完守护进程的redis server之后再跑redis-server开始报already used socket
请添加图片描述

ps -ef | grep redis

看下后台在跑的端口进程,发现0.0.0.0还有redis server在跑。没有关闭。

kill -9 {进程号}

kill掉就好了

https://blog.csdn.net/qq_43833393/article/details/127889619

解释:
因为前端启动的redis server会在每次terminal或者ctrl c关闭后,就停止,我们采用守护进程就是希望可以后端持续运行,但是./redis-cli shutdown按理说可以直接关闭后段进程不需要kill,但不知道为啥还在跑。

http://www.lryc.cn/news/108583.html

相关文章:

  • 面试题:创建JS对象的几种方式?构造函数是什么?new操作符具体干了什么?为什么字符串可以使用length?
  • LabVIEW深度相机与三维定位实战(下)
  • 【基础类】—CSS盒模型的全面认识
  • ATFX汇评:非农就业报告来袭,汇市或迎剧烈波动
  • SpringBoot的常用注解的服用方式
  • [课程][原创]CMakeLists编写实战linux版
  • 静态路由下一跳地址怎么确定(静态路由配置及讲解)
  • SPSS‖参数与非参数检验对比课程中的 配对样本T检验
  • AI赋能转型升级 助力打造“数智辽宁”——首次大模型研讨沙龙在沈成功举行
  • JVM、Redis、反射
  • 【Spring练习项目】博客系统
  • 神策新一代分析引擎架构演进
  • Systemui的介绍以及与普通应用的差异
  • 群狼调研—产业园物业满意度的调研对象
  • 想参加华为杯竞赛、高教社杯和数学建模国赛的小伙伴看过来
  • ELK 企业级日志分析系统
  • PyTorch Lightning教程六:优化代码
  • 基于linux下的高并发服务器开发(第四章)- 多线程实现并发服务器
  • YUV 色彩空间中U 和 V 分量的范围
  • 【云原生】K8S二进制搭建一
  • 自动化应用杂志自动化应用杂志社自动化应用编辑部2023年第11期目录
  • Tensorflow2-初识
  • idea-常用插件汇总
  • 【Kubernetes】
  • 使用逗号方式、JOIN方式和USING方式进行多表连接查询时哪个方式更好
  • MacOS上用docker运行mongo及mongo-express
  • 海康视频插件VideoWebPlugin在vue中的实现
  • swagger相关问题
  • Scala关键字lazy的见解
  • sql分类 DDL、DML、DCL