redis存储图片

本文介绍了redis的安装和配置方法,并给出了一个python实例,实现将图片存入redis和从redis中读取图片。

1、redis安装及配置

(1) 安装

$ 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

(2)、配置redis:
        配置文件是目录redis-5.0.5中的 redis.conf

  1. 修改daemonize为yes,使得程序可以在后台执行。
  2. 注释掉bind 127.0.0.1,使得可以支持远程连接。
  3. 修改登录密码 requirepass 123456

(3)、启动服务和关闭服务:

启动服务:   ./src/redis-server ./redis.conf
关闭服务:   ./src/redis-cli -a 123456 shutdown

(4)、进入客户端:

./src/redis-cli -h 127.0.0.1 -p 6379 -a 123456  # h是host地址,p是端口号,a是配置文件中修改的密码

(5)、常用命令

  1. flushall      清空redis缓存
  2. keys *       列出所有的key

(6)、关于redis持久化可以参考这里 https://www.cnblogs.com/AndyAo/p/8135980.html

2、python中使用redis

首先安装python中支持redis的模块,地址为 https://pypi.org/project/redis/
下面是给redis中插入图片和抽取图片的python代码

import pickle
import redis

class CACHE:
    def __init__(self, host='127.0.0.1',password='123456'):
        pool = redis.ConnectionPool(host=host, password=password)
        self.conn = redis.Redis(connection_pool=pool)

    def insert_image(self, frame_id, frame):
        # 将图片序列化存入redis中
        b = pickle.dumps(frame)  # frame is numpy.ndarray
        self.conn.set(frame_id,b)

    def get_image(self, frame_id):
        # 从redis中取出序列化的图片并进行反序列化
        return pickle.loads(self.conn.get(frame_id))

 

你可能感兴趣的:(Code)