暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Redis相关内容分享--1

原创 阿布 2022-09-06
288

单实例安装

1,安装

选择相关稳定版本: http://download.redis.io/releases/

![image-20220808112313636](/Users/apple/Library/Application Support/typora-user-images/image-20220808112313636.png)

cd /usr/local/src wget https://download.redis.io/releases/redis-6.2.7.tar.gz tar -zxf redis-6.2.7.tar.gz cd redis-6.2.7/ make

2,拷贝二进制文件

编译完成后就会生成相关的二进制可执行文件,为了便于管理。创建3个目录分别用来存放可执行二进制文件、配置文件、数据持久化文件。将src目录下的二进制文件redis-benchmark、redis-check-aof、redis-check-dump、redis-cli、redis-sentinel(非必需)、redis-server拷贝到bin目录,配置文件redis.conf、sentinel.conf(非必需)拷贝到etc目录。

mkdir -p /usr/local/redis/{bin,db/db1,etc} cp src/redis-server /usr/local/redis/bin/ cp src/redis-benchmark /usr/local/redis/bin/ cp src/redis-check-aof /usr/local/redis/bin/ cp src/redis-cli /usr/local/redis/bin/ cp src/redis-sentinel /usr/local/redis/bin/ cp redis.conf /usr/local/redis/etc/ cp sentinel.conf /usr/local/redis/etc/

redis-server:Redis服务器的daemon启动程序,对应的默认配置文件redis.conf。

redis-benchmark:Redis性能测试工具。

redis-cli:Redis命令行操作工具,类似于mysql的控制台。

redis-check-aof:修复损坏的数据文件file.aof。

redis-sentinel:用于管理多个Redis服务器(instance),为集群提供监控、提醒、自动故障迁移服务,对应的配置文件sentinel.conf

echo 'PATH=$PATH:/usr/local/redis/bin' >> /etc/profile source /etc/profile

3,配置的相关参数并启动

配置配置文件 /usr/local/redis/etc/redis.conf,其他默认配置项不动,设置以下配置:

#以守护进程的模式运行实例
daemonize yes
#指定日志文件的位置。默认为空,以守护进程运行时日志默认会发送到/dev/null设备,不以守护进程运行时日志输出到标准输出设备。
logfile "/var/log/redis.log"
#指定存放数据库文件的文件夹
dir "/usr/local/redis/db/db1"

启动redis,可以看到redis默认监听TCP的6379端口

root@VM-2-10-ubuntu:/usr/local/redis/etc# redis-server /usr/local/redis/etc/redis.conf & root@VM-2-10-ubuntu:/usr/local/redis/etc# netstat -nltp|grep redis tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 27943/redis-server tcp6 0 0 ::1:6379 :::* LISTEN 27943/redis-server

查看redis的日志时发现在启动的时候抛出了两条警告:

27943:M 08 Aug 2022 16:49:10.459 # 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.
27943:M 08 Aug 2022 16:49:10.459 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

根据警告提示我们需要将内核参数vm.overcommit_memory设置为1,net.core.somaxconn设置成更大的数值,默认是128。编辑文件/etc/sysctl.conf,追加2行

#sysctl文件追加的参数
vm.overcommit_memory = 1
net.core.somaxconn = 1024
#保存退出后,刷新系统内核参数
[root@syndic02 redis]# sysctl -p

关于这两个内核参数的解释:

vm.overcommit_memory

指定了内核针对内存分配的策略,其值可以是0、1、2。

0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

2, 表示内核允许分配超过所有物理内存和交换空间总和的内存。

net.core.somaxconn

定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为128,在某些应用下可能会限制接收新TCP连接侦听队列的大小。

4,redis命令工具 简单操作

root@VM-2-10-ubuntu:/var/log# redis-cli #查看redis的各种信息参数,内存、连接数、键值数等 127.0.0.1:6379> info # 查看所有的key值 127.0.0.1:6379> keys * #插入并查看一个key值 127.0.0.1:6379> set email 1234@qq.com OK 127.0.0.1:6379> get email "1234@qq.com" 127.0.0.1:6379> set mynums 1 OK 127.0.0.1:6379> sadd listest 4 (integer) 1 127.0.0.1:6379> get mynums "1" 127.0.0.1:6379> sadd listest 2 (integer) 1 127.0.0.1:6379> smembers listest 1) "2" 2) "4" 127.0.0.1:6379> quit
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论