Flask 框架中使用 Redis (二)
2021-12-21 by dongnan
环境描述
详细信息请参考上一篇文章 Flask 框架中使用 Redis (一)
接下来用例子介绍如何使用 flask-redis
来操作 redis
服务器端。
举个栗子
使用方法与 redis
命令基本相同。
查询
dbsize
dbsize(**kwargs)
Returns the number of keys in the current database
命令:
>>> redis_client.dbsize()
2
keys
keys(pattern='*', **kwargs)
Returns a list of keys matching pattern
命令:
>>> redis_client.keys()
[b'city', b'age']
exists
exists(*names)
Returns the number of names that exist
命令:
>>> redis_client.exists('age')
1 # 存在返回1
>>> redis_client.exists('name')
0 # 不存在返回0
get
get(name)
Return the value at key name, or None if the key doesn’t exist
命令:
>>> redis_client.get('age')
b'18' # 类型为字节
>>> r = redis_client.get('name')
>>> type(r)
<class 'NoneType'> # 不存在则为 NoneType
写入
set
set(name, value, ex=None, px=None, nx=False, xx=False, keepttl=False, get=False, exat=None, pxat=None)
Set the value at key name to value
ex sets an expire flag on key name for ex seconds.
px sets an expire flag on key name for px milliseconds.
命令:
>>> redis_client.set('new_name', 18, 600) # 第3个参数是过期时间
True
缓存相关
ttl
ttl(name)
Returns the number of seconds until the key name will expire
命令:
>>> redis_client.ttl('name')
-2 # key不存在
>>> redis_client.ttl('age')
-1 # key存在,但没有设置过期时间
>>> redis_client.ttl('new_name')
563 # key存在,返回剩余时间(秒)
expire
expire(name, time)
Set an expire flag on key name for time seconds. time can be represented by an integer or a Python timedelta object.
命令:
>>> redis_client.expire('age', 3600)
True
删除
delete
delete(*names)
Delete one or more keys specified by names
命令:
redis_client.delete('city')
1 # 成功删除返回1
其它
存放字典类型数据,需要先转换下Json
格式:
import json
# 字典类型
>>> r
{'000905': -8.08, '000300': -6.46, '000922': -0.98, '000932': -6.2, '000827': -10.81, '000986': 3.44, '399971': -15.85, '000985': -7.85, '000991': -13.41, 'HSI': 5.51}
# 写入时转换为 json格式字符串
>>> redis_client.set('index_yield_this_year', json.dumps(r), 600)
True
# 读取时转为 dict对象
>>> json.loads(redis_client.get('index_yield_this_year'))
{'000905': -8.08, '000300': -6.46, '000922': -0.98, '000932': -6.2, '000827': -10.81, '000986': 3.44, '399971': -15.85, '000985': -7.85, '000991': -13.41, 'HSI': 5.51}