DEV Community

drake
drake

Posted on

不同版本redis get 获取String类型的数据结构,拿到的值类型不同!

  • 以前从redis中直接get到的数据类型是bytes,即使你存进去的是string
        secret = self.redis_cli.get(self.redis_key_secret)
        if secret:
            logger.info(f'get secret from redis {self.account}')
            # logger.info(f'secret: {secret}')
            if isinstance(secret, bytes):
                secret = secret.decode()
            return secret
Enter fullscreen mode Exit fullscreen mode
  • 现在redis获取到的对象直接就是string了

  • 当然可能也和redis创建client的方式有关

创建Client的时候多了一行参数decode_responses=True,可能就带来了自动Decode的结果

import redis
from config import config
import os

env = os.environ.get('env')

def redis_cli():
    redis_conn = redis.StrictRedis(
        host=config.REDIS_HOST,
        port=config.REDIS_PORT,
        db=config.REDIS_DB,
        username=config.REDIS_USERNAME,
        password=config.REDIS_PASSWORD,
        decode_responses=True,
        ssl=True
    )
    return redis_conn


Enter fullscreen mode Exit fullscreen mode

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up