一、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 yesyes修改为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管理+允许远程访问+测试部署效果相关推荐

  1. Centos7下 Redis的安装、配置开机自启动、开放远程连接

    一.Centos7下 Redis的安装: 1.下载安装包: wget http://download.redis.io/releases/redis-4.0.2.tar.gz 2.解压安装包并安装: ...

  2. CentOS7下的软件安装方法及策略详解

    CentOS7下的软件安装方法及策略详解 互联网   01-24 15:15:09   作者:佚名   我要评论 今天小编为大家带来的是CentOS7下的软件安装方法及策略详解:希望对大家安装Cent ...

  3. linux防火墙安装httpd配置,CentOS7下 Apache的安装配置方法

    前些天安装了Nginx,为了好玩我就又安装Apache,Apache的安装还算顺利.在此做一下学习记录和经验分享. 一.安装httpd 1.先查看一下系统有没有已经安装了httpd的,如果啥都没查到, ...

  4. 阿里云服务器——centos7下源码安装tomcat9

    阿里云服务器--centos7下源码安装tomcat9 (第一次写文章,俺会努力的) 首先进入src文件夹: cd /usr/local/src 使用wget命令下载tomcat : wget htt ...

  5. 第一篇:centos7下svn的安装与卸载

    2019独角兽企业重金招聘Python工程师标准>>> 第一篇:centos7下svn的安装与卸载 2017年11月29日 00:10:53 独家记忆ly 阅读数:6108 这是我的 ...

  6. Centos7 下nexus的安装和使用

    文章目录 Centos7 下nexus的安装和使用 1.安装JDK 1.1查看当前linux是否安装java 1.2 上传jdk到linux文件目录 1.3 配置环境变量 (1)修改/etc/prof ...

  7. oracle静默创建实例linux,linux CentOS7下快速静默安装Oracle11GR2数据库并创建实例

    linux CentOS7下快速静默安装Oracle11GR2数据库并创建实例 本文章适合已经熟悉安装过程,需要快速部署使用 初学者建议分步学习:https://edu.51cto.com/cours ...

  8. CentOS7下通过yum安装p7zip

    CentOS7下通过yum安装p7zip 现象 云ECS主机上,没有装p7zip,然后通过yum安装,发现也没有这样包.再仔细检查了下,发现本机环境中,没有启用epel源,致使通过yum无法安装p7z ...

  9. Centos7下Fluka的安装教程(保姆级)

    Centos7下Fluka的安装教程(保姆级) 1 安装Fluka 首先大家去官网下载,在下载之前需要注册为fluka用户,下载之后就可以将其放在合适的位置进行解压,命令如下: tar -zxvf f ...

最新文章

  1. xcode_6.1_gm_seed_2.dmg 下载分享
  2. java gc日志乱码_6000+字,30+张图。JAVA线上故障排查全套路总结。
  3. centos ping不通局域网_新手小白初次安装虚拟机,网络不通怎么办,踩过的坑都告诉你...
  4. 设计模式学习之代理模式学习(一)
  5. java exception 乱码_java 常见中文乱码问题解决
  6. kotlin将对象转换为map_在 Kotlin 的 data class 中使用 MapStruct
  7. ajax 回调数据 刷新table_Ajax gt;gt;gt; 001
  8. MVC通过重写OnActionExecuting获取控制器,方法和域
  9. 超详细的SFtp工具类及使用
  10. 武当功夫在现代2 视频
  11. ARM和MIPS架构
  12. Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC 8.5 - 图生成 / 随机图
  13. SeedLab10: Linux Firewall Exploration Lab
  14. 海康、大华IP摄像机RTSP地址及格式详解
  15. 计算机网络常见名词及其解释
  16. VR虚拟现实技术类毕业论文文献都有哪些?
  17. Java基础01 Java的安装和配置
  18. hook(2)Activity启动流程,涨知识
  19. Redis集群之多主多从
  20. KETTLE实现循环批量多表抽取添加字段

热门文章

  1. exe软件ui嵌套软件_UI设计行业中的PS软件起什么用途
  2. clob类型用java怎么存,Java 储存和读取 oracle CLOB 类型字段的实用方法
  3. 切割固定长度字符串的方法_木质踢脚线安装的施工方法
  4. SPOJ7258(后缀自动机--第k大的子串)
  5. 像加载DLL一样加载EXE
  6. boost使用split分割字符串
  7. 常见的反爬手段和解决思路
  8. MySql数据库中的子查询使用
  9. kubernetes(八)问题排查
  10. C++学习路线和参考资料