redis-py 使用心得

redis-py使用

@(数据库)[redis, python]

介绍python下redis库的使用
pip install redis
versionredis-2.10.6

  • redis-py使用
    • 常见问题汇总
      • 1.取值时的中文乱码问题
    • redis连接的两种方式
      • 1.直接新建连接请求
      • 2.通过连接池来连接
      • 3.两种连接方式的使用场景和优劣
    • 删除缓存数据的方法
      • 1.一键全删
    • 消息队列相关操作
      • 进队操作
      • 出队操作
      • 获取队列长度 llen(key)
      • 队列查询
      • 队列修改

常见问题汇总

1.取值时的中文乱码问题

在新建连接或者连接池时,加入参数decode_responses=True;
此参数默认为false,为false时.从redis取值的类型为bytes类型,并且编码类型不为utf-8;
参考 https://www.jianshu.com/p/495f401a46e8

redis连接的两种方式

1.直接新建连接请求

redis.Redis(host,port,decode_responses=True)

2.通过连接池来连接

pool = redis.ConnectionPool(host, port,decode_responses=True)  # 建立连接池对象
r =redis.Redis(connection_pool=pool) # 建立一个连接对象

3.两种连接方式的使用场景和优劣

  • 连接池:在多线程、多进程情况,通过pool来管理对一个redis server的所有连接,避免多次建立、释放连接的开销

删除缓存数据的方法

1.一键全删

redis.flushall()

消息队列相关操作

本文仅列出了队列中的常用操作,更多骚操作@参考文章
@参考文章 https://www.jianshu.com/p/2639549bedc8

进队操作

  • lpush(key,val)从左边进入队列
    • key 队列名称
    • val 插入对象
  • rpush(key,val)从右边进入队列
  • linsert插队

出队操作

  • rpop(key)从队列右边出队
  • lpop(key)从队列左边出队
  • brpop(key) 消息阻塞式订阅,当队列没有值时,一直阻塞等待成员的加入
  • brpop([key1,key2])优先级队列, 率先读取key1中的内容

获取队列长度 llen(key)

队列查询

  • lrange(key,begin,end)批量查询
    • lrange(key,0,-1):查看当前队列所有成员

队列修改

  • lset(key,index,val)修改特定位置的值

持续更新中.........................

你可能感兴趣的:(数据库)