django使用redis

上来就干货!

  • 安装django-redis

pip install django-redis

  • 配置
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": f"redis://{REDIS_URL}",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PASSWORD": REDIS_PASSWORD
        }
    }
}
  • 使用
from django_redis import get_redis_connection

redis_client = get_redis_connection()

# 设置指定键的值
redis_client.set(key, value)
# 获取指定键的值
redis_client.get(key)
# 删除指定键的值
redis_client.delete(key)

# 设置键的过期时间,以秒为单位
redis_client.expire(key, timeout)
# 获取过期时间
time = redis_client.ttl(key)
# 0 key 不存在 (或已过期)
# None key 存在但没有设置过期

# 在指定哈希表中设置字段的值
redis_client.hset(name, key, value)
# 获取指定哈希表中字段的值
redis_client.hget(name, key)
# 删除指定哈希表中的一个或多个字段
# 使用hmset
redis_conn.hmset('my_hash', {'field1': 'value1', 'field2': 'value2'})
# 使用hmget
values = redis_conn.hmget('my_hash', ['field1', 'field2'])
redis_client.hdel(name, *keys)
# 获取指定哈希表中所有字段及其值
redis_client.hgetall(name)

# 发布/订阅(Pub/Sub)
pubsub = redis_conn.pubsub()  # 创建一个发布/订阅对象
pubsub.subscribe(channel)  # 订阅频道
pubsub.publish(channel, message)  # 发布消息到频道

# 事务(Transaction)
with redis_conn.pipeline() as pipe:
    pipe.set('key1', 'value1')
    pipe.get('key1')
    results = pipe.execute()
# 或
# 创建redis管道,获取管道对象
pl=redis_conn.pipeline()
# 将redis请求添加到队列
pl.setex('sms_%s'%phone,60,smscode_str)
pl.setex('is_send_%s'%phone,60,1)
# 批量执行请求
pl.execute()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容