开发者学堂课程【Redis 入门实战演练: Redis 简介及安装(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/653/detail/10832
Redis 简介及安装(二)
二.Redis 安装及使用:
官方下载地址:http://download.redis.io/releases/
(1):yum 安装 redis:
(2)在 centos 系统上要安装 epel 源。
(3)查看 yum仓库 redis 版本:
官网进行源码下载
找到 Download it
向下翻找到 scr/redis-server 并执行
再找到 scr/redis-cli 进入交互界面
命令为 set 生成 key
fool 为 key 的名称,bar 为 key 的值
通过 key 找到相对应的值
因为系统默认源没有所以需要用 epel
输入 yull install epel -y
运行后再输入
yull install epel-release -y
安装完 epel 源再进行安装
下载最新版本的 redis 需要右键复制下载地址到新的搜索窗口去掉具体版本进行搜索进入到下载页面,里面有各种目录的历史版本可供进行选择
下载4.0版本为例
systemctl restart redis
端口为6379
输入redis-cli
进入 redis 的交互窗口
输入set foo bar
get bar
(2)编译安装方法
首先下载需要使用的版本
官方的安装命令:
https://redis.io/download
# pwd
/usr/local/src
# tarxf redis-5.0.3.tar.gz
#cd redis-5.0.3
#make PREFIX=/apps/redis install
#指定 redis 安装目录
#11 /usr/local/redis/
total 0
drwxr-xr-x·2 root root134 DeC 13 09:21 bin
# mkdir /apps/redis/fetc,logs,data,runj
#创建配置文件、日志、数据等目录
# cp redis.conf /usr/local/redis/etc/
注意:redis 版本不兼容,需要使用同一版本
克隆出一个新的 redis 服务器
准备7到8台 redis cluster 虚拟机,六台组成机群,两台用于 redis 模拟上下限的操作
编辑 vim/ect/hostname
redis-server1.magedu.local
修改 IP 地址
BOOTPROTO=后改为 static 变为静态获取
其余地址进行配置
IPADDR=172.31.7.101
NETMASK-255.255.248.0
GATEWAY=172.31.7.254
DNS1=172.31.7.254
最后进行重启
将虚拟机设置为快照
编译
下载 redis 的源码包
复制连接地址
进入 cd /usr/local/src/
#ll
#wget
将复制过的下载包粘贴在后面进行下载
进入下载目录当中
# tar xvf redis-4.0.14.tar.gz
解压并进入源码包
安装时在 make PREFIX= 后面加入地址可改变下载目录
# mkdir /apps/redis/fetc,logs,data,runj
可以创建配置文件、日志、数据运行等目录
# cp redis.conf /usr/local/redis/etc/
验证 #//ll/apps/redis/
目录检查数据在不在其中
将目录串接起来
#mkdir /apps/redis/{etc,logs,data,run}
将配置文件拷贝进去 cp redis
在编译的redis源码当前目录下有模板配置文件#redis.conf
#vim sentinel.conf
启动
#/apps/redis/bin/redis-server
进行启动
#/apps/redis/bin//redis-server /apps/redis/ect/redis.conf
#/apps/redis/bin/redis-cli
Set foo bar
Get foo
(3)解决当前的警告和提示
tcp-backlog:
The backlog argument defines the maximum length to which the queue of pending connections for sockfd may grow. If a connection request arrives when the queue is full, the client may receive an error with an indication of ECONNREFUSED or, if the underlying protocol supports retransmission, the request may be ignoredso that a later reattempt at connection succeeds.
backlog 参数控制的是三次握手的时候 server 端收到 client ack 确认号之后的队列值。
net.core.somaxconn = 512
vm.overcommit_memory:
0、表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1、表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2、表示内核允许分配超过所有物理内存和交换空间总和的内存
vm.overcommit_memory =1
transparent hugepage:
大页内存动态分配,需要关闭让redis负责内存管理。
echo never >/sys/kernel/mm/transparent_hugepage/enabled
再次启动 redis:
将以上配置同步到其他 redis 服务器。# echo never >/sys/kernel/mm/transparent_hugepage/enabled^C# vim /etc/rc.d/rc.local
# ll /etc/rc.d/rc.local
19:53 /etc/rc.d/rc.local
# chmod a+x /etc/rc.d/rc.local
再次启动
编辑 redis 服务启动脚本:
[root@s1 ~]# cat /usr/1ib/systemd/system/redis.service
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online,target
Wants=network-online.target
[Service]
#ExecStart=/usr/bin/redis-server /etc/redis.conf --supervised systemd
ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis.conf --supervisedsystemdExecReload=/bin/ki1l -sHUPSMAINPID
ExecStop=/bin/kill-s QUIT SMAINPID
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
修改部分地址并创建账号
ExecStart=/apps/redis/bin/redis-server /apps/redis/dtc/redis.conf --supervised systend
ExecStop=/usr/libexec/redis-shutdown
Type=notify
User-redis
Groun=retis
[root@redis-serverl redis-4.0.14)# vim /usr/lib/systemd/system/redis.service [root@redis-serverl redis-4.0.14]#
[rootdredis-serverl redis-4,0.141#
[root@redis-serverl redis·4.0.14]# id redis
id:redis: no such user
[root@redis-serverl redis-4.0.14]# useraddredis.-5o/
/bin/bash bin/sh /usr/bin/bash /usr/bin/sh
[root@redis-serverl redis-4.0.14]# useradd redis -s /sbin/nologin [root@redis-serverl redis-4.0.14]# id redis
uid=1000(redis) gid=1000(redis) groups=100(redis)
[root@redis-serverl redis-4.0.14]# cat /etc/redhat-release