ubuntu18--(3)--Windows 10 自带linux子系统-redis安装笔记

简介:

Redis是一个内存中键值存储,以其灵活性、性能和广泛的语言支持而闻名。它通常用作数据库、缓存和消息代理,并支持各种数据结构。

下面是记录

1、安装启动(适用于apt-get方式安装)- 不推荐

大神指路

# 安装之前检测是否有安装redis-cli和redis-server
whereis redis-cli
# redis-cli: /usr/bin/redis-cli /usr/local/bin/redis-cli /usr/share/man/man1/redis-cli.1.gz
whereis redis-server
# redis-server: /usr/bin/redis-server /usr/local/bin/redis-server /usr/share/man/man1/redis-server.1.gz
# 如果有,可以直接用也可以卸载。卸载参照本文卸载步骤

# 安装
sudo apt-get update
sudo apt-get install redis-server
# 检查redis服务器系统进程
ps -aux|grep redis
# 通过启动命令检查Redis服务器状态
netstat -nlt|grep 6379
# 启动 一定以root权限启动,否则问题多多
# 启动服务端:
su
redis-server /etc/redis/redis.conf
# 后台方式启动 redis-server /etc/redis/redis.conf &
# 启动客户端:redis-cli

警告处理:
大神指路
警告1:WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128
处理:

su
vim /etc/sysctl.conf
# 再文件最后一行增加
net.core.somaxconn=1024
# 保存成功后,执行命令
sysctl -p
# 有可能不生效,不知道为啥,哪位大神知道一下?

补充:
net.core.somaxconn是linux中的一个kernel参数,表示socket监听(listen)的backlog上限。
backlog是socket的监听队列,当一个请求(request)尚未被处理或建立时,他会进入backlog。
而socket server可以一次性处理backlog中的所有请求,处理后的请求不再位于监听队列中。
当server处理请求较慢,以至于监听队列被填满后,新来的请求会被拒绝。
所以说net.core.somaxconn限制了接收新 TCP 连接侦听队列的大小。

警告2:WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.
处理

su
vim /etc/sysctl.conf
# 再文件最后一行增加
vm.overcommit_memory=1
# 保存成功后,执行命令
sysctl -p

补充:
overcommit_memory参数说明:
设置内存分配策略(可选,根据服务器的实际情况进行设置)
/proc/sys/vm/overcommit_memory
可选值:0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存
注意:redis在dump数据的时候,会fork出一个子进程,理论上child进程所占用的内存和parent是一样的,比如parent占用的内存为8G,这个时候也要同样分配8G的内存给child,如果内存无法负担,往往会造成redis服务器的down机或者IO负载过高,效率下降。所以这里比较优化的内存分配策略应该设置为 1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何)。

后台启动,大神指路
修改 配置文件允许局域网内的其他电脑连接redis
文件位置:/etc/redis/redis.conf 如果无法编辑或者无法保存 请先修改权限

2、安装启动(适用于源码编译安装)- 推荐

大神指路

# 安装之前检测是否有安装redis-cli和redis-server
whereis redis-cli
# redis-cli: /usr/bin/redis-cli /usr/local/bin/redis-cli /usr/share/man/man1/redis-cli.1.gz
whereis redis-server
# redis-server: /usr/bin/redis-server /usr/local/bin/redis-server /usr/share/man/man1/redis-server.1.gz
# 如果有,可以直接用也可以卸载。卸载参照本文卸载步骤
mkdir -p /opt/install/redis
cd /opt/install/redis
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar xzf redis-5.0.5.tar.gz
cd redis-5.0.5
make
# 安装redis至/usr/local/redis目录下
make PREFIX=/usr/local/redis install
# 拷贝Redis的redis.conf配置文件至redis的安装目录下,
cp redis.conf /usr/local/redis
# 修改Redis配置文件,使Redis以后台进程的形式启动
vi /usr/local/redis/redis.conf
# 将daemonize no这行修改为daemonize yes。这样redis就会以进程的方式启动,而不是以前段方式启动。

# 启动 使用redis.conf配置文件启动Redis
/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf

# 停止 
/usr/local/redis/bin/redis-cli shutdown

2.1、 常用配置

添加到系统变量

export PATH=$PATH:/usr/local/redis/bin/
# 查看:echo $PATH
# 启动
redis-server /usr/local/redis/redis.conf

# 停止
redis-cli shutdown

数据库文件位置设置

# 数据库文件配置项为redis.conf中的 dir指定,./ 表示/etc
# 查看方法
1、启动redis
2、通过redis-cli连接
6379> config get dir
# 上面的命令返回数据库的位置

# 配置自己的数据库位置,这里我设置为 /etc/redis/
mkdir -p /opt/install/redis/data。
cd /opt/install/redis/data/
vi /usr
# 把dir的值修改为 dir /opt/install/redis/data/

3、停止Redis服务

(1)通过redis-cli连接服务器后执行shutdown命令,则执行停止redis服务操作。
(2)可以使用shutdown命令关闭redis服务器外,还可以使用kill+进程号的方式关闭redis服务。
(3)不要使用Kill 9方式关闭redis进程,这样redis不会进行持久化操作,除此之外,还会造成缓冲区等资源不能优雅关闭,极端情况下会造成AOF和复制丢失数据的情况
(4)shutdown还有一个参数,代表关闭redis服务前是否生产持久化文件

4、常用设置

4.1 设置密码

大神指路
关键字:requirepass foobared
设置完成后需要重启redis,使用时需要使用:auth foobared

4.2 日志设置

大神指路
关键字:
loglevel debug
logfile /var/log/redis/redis-server.log
需要手动创建对应的日志文件:touch /var/log/redis/redis-server.log

6、卸载(适用于apt-get方式安装的)

sudo apt-get purge --auto-remove redis-server

7、卸载(适用于源码编译安装的)

# 1、关闭已经启动的 Redis 服务,注意,你可能启动了多个实例,所以可能要逐个关闭,我这里的情况只有 redis_6379 在运行:
sudo service redis_6379 stop
# ps -ef|grep redis
# kill掉进程 sudo kill xxx
# 2、删除 usr/local/bin/ 中所有 redis 相关的文件
sudo rm /usr/local/bin/redis-*
# 3、删除配置目录和内容
sudo rm -r /etc/redis/
# 4、删除日志
sudo rm /var/log/redis/*
# 5、删除数据目录和内容
sudo rm -r /var/lib/redis/
# 6、删除初始化脚本
sudo rm /etc/init.d/redis*
# 7、删除现有的Redis PID文件(仅当存在时)
sudo rm /var/run/redis*
# 8、重启服务器
# 现在,Redis 已完全从你的服务器上删除。

最后,附手册

http://redisdoc.com/index.html
手册也可以下载下来单机跑,速度快,爽。


看这里,看这里
文章总目录:博客导航
参考文章:https://blog.csdn.net/u_ascend/article/details/89634779
大神指路:https://blog.csdn.net/zhezhebie/article/details/73470134

发布了131 篇原创文章 · 获赞 18 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/u_ascend/article/details/89634779