本篇主要讲解在 CentOS 环境下安装 Redis。
1、简介
Redis(Remote Dictionary Server),即远程字典服务,是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。
官网地址:
https://redis.io/
2、安装
1、下载
官网下载地址:
https://redis.io/download
例如下载 redis-6.2.6.tar.gz(稳定版本)
并将已下载的文件上传到服务器上。
或者直接输入命令,在服务器上进行下载。
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
2、解压
tar xzf redis-6.2.6.tar.gz
解压后生成 redis-6.2.6 目录。
3、进入解压后目录,并进行编译
cd redis-6.2.6
make
make test
3、开启与关闭服务
进入解压后生成的 redis-6.2.6 目录
1、开启服务
src/redis-server --port 6379
2、关闭服务
src/redis-cli -p 6379 shutdown
4、内置客户端交互
Redis 服务已开启,并进入解压后生成的 redis-6.2.6 目录。
内置客户端连接 Redis 服务器(如果是远程连接,替换 127.0.0.1 为实际服务器IP 地址)
src/redis-cli -h 127.0.0.1 -p 6379
设置键“test”与值“123456”,并获取指定的键“test”的值。
三、修改端口号,远程连接,添加密码
1、修改端口号:
重新启动redis服务,可以看到端口已经改变。
特别注意,重启时如果使用./redis-server命令,启动的redis有可能仍然是6379端口,此时重启需要使用命令 ./redis-server ../redis.conf。(我理解为redis有缓存机制,还是读取了旧的端口配置,未验证过纯猜测)
2、远程连接 ,注释redis.conf配置文件中的 #bind 127.0.0.1 -::1
3、修改密码
搜索requirepass foobared,重新添加一条 后面添加需要改的密码,
4、、以上操作完成之后,重启启动redis,如未启动成功,请看第一条,修改配置未生效
# 修改linux系统内核参数
[redis-5.0.8]$ sudo vim /etc/sysctl.conf
...
# 添加内容
net.core.somaxconn = 1024
vm.overcommit_memory = 1
# 添加完成后,刷新内核参数,立即生效
[redis-5.0.8] sudo sysctl -p
5、redis服务器启动时遇到的问题WARNING Your kernel has a bug that could lead to data corruption during background save、
redis.config配置图
记住一定要取消这最后一行的注释,redis-server才能正常启动!!!
6、如果出现下面报错,是因为redis版本太高,与gcc版本不匹配,可以选择下载低版本的redis,或者升级gcc
server.c:5151:94: error: ‘struct redisServer’ has no member named ‘unixsocket’ serverLog(LL_NOTICE,"The server is now ready to accept connections at %s", server.unixsocket); ^ server.c:5152:19: error: ‘struct redisServer’ has no member named ‘supervised_mode’ if (server.supervised_mode == SUPERVISED_SYSTEMD) { ^ server.c:5153:24: error: ‘struct redisServer’ has no member named ‘masterhost’ if (!server.masterhost) { ^ server.c:5166:15: error: ‘struct redisServer’ has no member named ‘maxmemory’ if (server.maxmemory > 0 && server.maxmemory < 1024*1024) { ^ server.c:5166:39: error: ‘struct redisServer’ has no member named ‘maxmemory’ if (server.maxmemory > 0 && server.maxmemory < 1024*1024) { ^ server.c:5167:176: error: ‘struct redisServer’ has no member named ‘maxmemory’ serverLog(LL_WARNING,"WARNING: You specified a maxmemory value that is less than 1MB (current value is %llu bytes). Are you sure this is what you really want?", server.maxmemory); ^ server.c:5170:31: error: ‘struct redisServer’ has no member named ‘server_cpulist’ redisSetCpuAffinity(server.server_cpulist);
原文链接:https://blog.csdn.net/wangmcn/article/details/122665484