【Redis】CentOS7下redis的安装+supervisor管理+允许远程访问+测试部署效果
一、redis的安装
第一步:下载redis安装包
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
第二步:解压压缩包
tar -zxvf redis-4.0.6.tar.gz
第三步:yum安装gcc依赖(如果没有安装gcc的话)
yum install gcc
第四步:跳转到redis解压目录下
cd redis-4.0.6
第五步:编译安装
make MALLOC=libc
将/usr/local/redis-4.0.6/src目录下的文件加到/usr/local/bin目录
cd src && make install
常用命令:
redis启动 redis-server
redis关闭 redis-cli -h 127.0.0.1 -p 6379 shutdown
二、使用supervisor管理redis启动
redis 的 Supervisor 配置
使用 supervisorctl reload 载入新的 Redis 配置后,Redis 进程便让 Supervisor 启动了起来。如果需要指定 Redis 的输出日志,可以通过stdout_logfile配置选项指定。
由于 supervisor 管理的进程不能设置为 daemon 模式,故如果 redis 无法正常启动,可以查看一下 Redis 的配置,并将daemonize选项设置为 no。
# /etc/supervisord.conf
[program:redis]
command=/home/hanquan/redis-5.0.3/src/redis-server /home/hanquan/redis-5.0.3/redis.conf
autostart=true
autorestart=true
startsecs=3
常用supervisor命令:
supervisord -c /etc/supervisord.conf 指定配置文件开启supervisor
supervisorctl status 查看进程状态
supervisorctl shutdown 关闭supervisordsupervisorctl start all 启动所有进程
supervisorctl restart all 重启所有进程
supervisorctl stop all 停止所有进程
在 supervisor 的管理下,redis 已经在后台启动。
那么,我该怎么与后台运行中的 redis 交互呢?
redis-server
用来启动 redis 的服务端。redis-cli
意思就是 redis-client,用来启动 redis 的客户端。
在 src 目录下,有个文件redis-cli
,这个文件就是用来连接已经启动的 redis 服务的。使用redis-cli
命令连接本机的 redis 服务:
[root@localhost src]# redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
三、允许在其他机器上远程连接 redis
在 redis.conf 配置文件中进行以下两处修改:
1、找到bind 127.0.0.1
,加个#
注释掉
2、查找protected-mode yes
把yes
修改为no
3、重启 redis 即可
四、使用python对redis进行操作
安装redis模块 pip install redis
使用python对redis进行操作
import redis
Conn = redis.StrictRedis(host='localhost',port='6379',db='0')
Conn.set('hello','Hello World~')
Conn.get('hello')
五、在 Python 中使用 Redis 连接池
redis.py 使用 ConnectionPool 来管理对一个 redis server 的连接,避免每次建立、释放连接的开销。默认,每个 Redis 实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。
如果想要并发操作,就需要写成单列,以模块导入就是一个单例,把他做成单例,写在一个文件里面,import它,就是一个单例
RedisPool.py
连接池的创建
# -*- coding: utf-8 -*-
import redis# 创建连接池
redisPool = redis.ConnectionPool(host='192.168.37.136', port=6379, max_connections=20)
# 使用连接池对象去链接redis
# r = redis.Redis(connection_pool=redisPool)
# 查看数据
# print(r.get("xxx"))
xxxUtils.py
连接池的使用
def get_value(urls):# 使用连接池对象去链接redisr = redis.Redis(connection_pool=redisPool)if r.exists(urls):result_json = r.get(urls)) # redis命中key,直接取出else: # redis不存在key,则计算后添加到redisresult_json = calculate_value(urls)r.set(urls, result_json)r.expire(json.dumps(urls), 60 * 60) # 设置过期时间 单位:秒
参考:redis学习 (key)键,Python操作redis 键 (二)
六、测试效果
Flask项目,supervisor+nginx+gunicorn,虚拟机内部署,附配置:
1、首次访问页面
cpu 使用情况
2、第二次访问,直接redis中取
完全加载整个页面的时间,由首次访问的 150秒 缩短至 5.82秒 ,可以看到速度提升显著
【Redis】CentOS7下redis的安装+supervisor管理+允许远程访问+测试部署效果相关推荐
- Centos7下 Redis的安装、配置开机自启动、开放远程连接
一.Centos7下 Redis的安装: 1.下载安装包: wget http://download.redis.io/releases/redis-4.0.2.tar.gz 2.解压安装包并安装: ...
- CentOS7下的软件安装方法及策略详解
CentOS7下的软件安装方法及策略详解 互联网 01-24 15:15:09 作者:佚名 我要评论 今天小编为大家带来的是CentOS7下的软件安装方法及策略详解:希望对大家安装Cent ...
- linux防火墙安装httpd配置,CentOS7下 Apache的安装配置方法
前些天安装了Nginx,为了好玩我就又安装Apache,Apache的安装还算顺利.在此做一下学习记录和经验分享. 一.安装httpd 1.先查看一下系统有没有已经安装了httpd的,如果啥都没查到, ...
- 阿里云服务器——centos7下源码安装tomcat9
阿里云服务器--centos7下源码安装tomcat9 (第一次写文章,俺会努力的) 首先进入src文件夹: cd /usr/local/src 使用wget命令下载tomcat : wget htt ...
- 第一篇:centos7下svn的安装与卸载
2019独角兽企业重金招聘Python工程师标准>>> 第一篇:centos7下svn的安装与卸载 2017年11月29日 00:10:53 独家记忆ly 阅读数:6108 这是我的 ...
- Centos7 下nexus的安装和使用
文章目录 Centos7 下nexus的安装和使用 1.安装JDK 1.1查看当前linux是否安装java 1.2 上传jdk到linux文件目录 1.3 配置环境变量 (1)修改/etc/prof ...
- oracle静默创建实例linux,linux CentOS7下快速静默安装Oracle11GR2数据库并创建实例
linux CentOS7下快速静默安装Oracle11GR2数据库并创建实例 本文章适合已经熟悉安装过程,需要快速部署使用 初学者建议分步学习:https://edu.51cto.com/cours ...
- CentOS7下通过yum安装p7zip
CentOS7下通过yum安装p7zip 现象 云ECS主机上,没有装p7zip,然后通过yum安装,发现也没有这样包.再仔细检查了下,发现本机环境中,没有启用epel源,致使通过yum无法安装p7z ...
- Centos7下Fluka的安装教程(保姆级)
Centos7下Fluka的安装教程(保姆级) 1 安装Fluka 首先大家去官网下载,在下载之前需要注册为fluka用户,下载之后就可以将其放在合适的位置进行解压,命令如下: tar -zxvf f ...
最新文章
- xcode_6.1_gm_seed_2.dmg 下载分享
- java gc日志乱码_6000+字,30+张图。JAVA线上故障排查全套路总结。
- centos ping不通局域网_新手小白初次安装虚拟机,网络不通怎么办,踩过的坑都告诉你...
- 设计模式学习之代理模式学习(一)
- java exception 乱码_java 常见中文乱码问题解决
- kotlin将对象转换为map_在 Kotlin 的 data class 中使用 MapStruct
- ajax 回调数据 刷新table_Ajax gt;gt;gt; 001
- MVC通过重写OnActionExecuting获取控制器,方法和域
- 超详细的SFtp工具类及使用
- 武当功夫在现代2 视频
- ARM和MIPS架构
- Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC 8.5 - 图生成 / 随机图
- SeedLab10: Linux Firewall Exploration Lab
- 海康、大华IP摄像机RTSP地址及格式详解
- 计算机网络常见名词及其解释
- VR虚拟现实技术类毕业论文文献都有哪些?
- Java基础01 Java的安装和配置
- hook(2)Activity启动流程,涨知识
- Redis集群之多主多从
- KETTLE实现循环批量多表抽取添加字段