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))

 

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis是一种高性能的键值存储数据库,可以用来存储各种类型的数据,包括字符串、哈希表、列表、集合、有序集合等。 在Redis存储图片可以采用以下两种方式: 1. 存储图片的二进制数据 可以将图片的二进制数据存储Redis的字符串类型中。在存储时,需要将图片的二进制数据转换成字符串类型,然后再存储Redis中。在读取时,需要将字符串类型转换成二进制数据。 示例代码: ```python import redis import base64 # 连接Redis r = redis.Redis(host='localhost', port=6379, db=0) # 读取图片 with open('test.png', 'rb') as f: image_data = f.read() # 将图片的二进制数据转换成字符串类型 image_str = base64.b64encode(image_data).decode() # 存储图片的字符串类型数据到Redis中 r.set('image', image_str) # 读取图片的字符串类型数据 image_str = r.get('image') # 将字符串类型数据转换成二进制数据 image_data = base64.b64decode(image_str) # 将二进制数据写入文件中,即可显示图片 with open('test2.png', 'wb') as f: f.write(image_data) ``` 2. 存储图片的URL地址 可以将图片的URL地址存储Redis的字符串类型中。在读取时,直接从URL地址下载图片即可。 示例代码: ```python import redis import requests # 连接Redis r = redis.Redis(host='localhost', port=6379, db=0) # 存储图片的URL地址到Redis中 r.set('image_url', 'https://www.example.com/image.png') # 读取图片的URL地址 image_url = r.get('image_url').decode() # 下载图片并保存到文件中,即可显示图片 response = requests.get(image_url) with open('test.png', 'wb') as f: f.write(response.content) ``` 以上就是在Redis存储图片的两种方式。无论采用哪种方式,都需要注意图片大小和Redis的内存限制,避免存储过大的图片导致Redis崩溃。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值