我爱编程

Python的Redis API

2018-03-28  本文已影响0人  brownchen

Redis是一款in memory工作模式的高效key-value型NoSQL数据库,支持事务、数据持久存储,并且自带发布/订阅功能。在程序开发过程中,我们可以把Redis用作缓存服务器或者消息中间件,这里主要介绍如何在Python代码中调用第三方API操作Redis。

前言

在用代码操作Redis前,最好先解决以下三个问题:

redis标准库

import redis
pool = redis.ConnectionPool(host=HOST, port=PORT, password=认证密码, max_connections=NUM)
conn = redis.Redis(pool=pool)
基本的CRUD操作此处不多赘述
# 事务
conn.exec_command('multi')
conn.set('id', 1)
conn.set('name', 'brown')
conn.set('gender', 'Male')
conn.exec_command('exec')

django_redis库

先在Django项目的settings文件中添加redis配置,示例如下

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "CONNECTION_POOL_KWARGS": {"max_connections": 1000},
            "DECODE_RESPONSES": True,
        }
    }
}

随后就能在项目内使用django_redis操作redis。django_redis对Redis API接口进行了封装,与直接使用redis库的区别就类似用ORM与直接使用pymysql操作数据库的区别。

import json
from django_redis import get_redis_connection
conn = get_redis_connection('default')
# Redis作为消息队列
信息生产者Producer:
将数据存入redis
conn.lpush('KEY', json.dumps({VALUE}))
信息消费者Consumer:
取出数据
json_data = conn.rpop('KEY')
data =json.dumps(json_data)
为了提高效率,一次提交N条记录至MySQL数据库
db_conn = pymsql.connect(host=, port=, database=,user=,password=)
cur  = db_conn.cursor()
for i in range(100):
  insert = '''insert into TBL_NAME () value () '''
  cur.execute(insert, data)
db_conn.commit()
上一篇下一篇

猜你喜欢

热点阅读