Flask使用redis数据库
tips:
- 本文简单介绍Flask中使用redis
- 本文代码基于python3编写
项目场景
在实际项目中,不频繁变化且重复使用的数据、有一定时效的数据等。放入redis中,不仅可以提高查询效率,还能减少维护成本。实际应用比如手机验证码,token验证、任务调度等。
redis
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
Python使用redis
- 安装Python redis包pip install redis
- 简单使用
# -*- coding: utf-8 -*-
# !/usr/bin/python3
# author by : AlgorithmSecret
# wechat by: 雨夜的博客
import redis
# 获取redis数据库连接
r = redis.StrictRedis(host="127.0.0.1", port=6379, db=0)
# redis存入键值对
r.set(name="key", value="value")
# 读取键值对
print(r.get("key"))
# 删除
print(r.delete("key"))
# redis存入Hash值
r.hset(name="name", key="key1", value="value1")
r.hset(name="name", key="key2", value="value2")
# 获取所有哈希表中的字段
print(r.hgetall("name"))
# 获取所有给定字段的值
print(r.hmget("name", "key1", "key2"))
# 获取存储在哈希表中指定字段的值。
print(r.hmget("name", "key1"))
# 删除一个或多个哈希表字段
print(r.hdel("name", "key1"))
# 过期时间
r.expire("name", 60) # 60秒后过期
Flask使用redis
封装redis方法(RedisUtils
# -*- coding: utf-8 -*-
# !/usr/bin/python3
# author by : AlgorithmSecret
# wechat by: 雨夜的博客
import redis
class RedisUtil(object):
def __init__(self):
self.redisConnect = redis.StrictRedis(host="127.0.0.1", port=6379, db=0)
# redis存入键值对
def set(self, key, value):
self.redisConnect.set(name=key, value=value)
return True
# 读取键值对
def get(self, key):
return self.redisConnect.get(key)
# 删除
def delete(self, key):
return self.redisConnect.delete(key)
# redis存入Hash值
def hset(self, name, key, value):
self.redisConnect.hset(name=name, key=key, value=value)
return True
# 获取hash值
def hget(self, key, value):
return self.redisConnect.hget(key, value)
# 获取所有哈希表中的字段
def hgetall(self, name):
return self.redisConnect.hgetall(name)
# 获取存储在哈希表中指定字段的值
def hmget(self, name, key):
return self.redisConnect.hmget(name, key)
# 删除某一个key
def hdel(self, name, key):
return self.redisConnect.hdel(name, key)
# 递加
def incr(self, name):
return self.redisConnect.incr(name=name)
# 递减
def decr(self, name):
return self.redisConnect.decr(name=name)