Redis数据库的简单使用
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
数据结构如下:
string hash list set zset
string 命令如下:
设置一个指定key的值:set key value #value为string类型
获取指定key的值:get key
设置键值及过期时间,以秒为单位:setex key second value
设置多个键值可以使用mset命令:mset key1 value1 key2 value2
追加值: append key value
键命令:
查看数据库中所有键:keys *
查看包含某个字符的键:keys ‘xxxx*’
删除一个键值: del key #可以同时删除多个
判断键是否存在: exists key #如果返回值为1说明存在,为0则不存在
查看键类型: type key
设置过期时间: expire key second
查看过期时间:ttl key
hash命令:
设置单个属性:hset key 属性 value #value为string类型
设置多少属性: hmset key 属性1 value1 属性2 value2
获取指定键所有属性: hkeys key
获取指定键指定属性值:hget key 属性
获取指定键多个属性值: hmget key 属性1 属性2
获取所有属性的值: hvals key
删除属性:hdel key 属性1 属性2
list命令:
从左插入:lpush key value1 value
从右插入:rpush key value1 value2
从指定元素前面或后面插入元素:linsert key before/after 现在元素 新元素
获取元素: lrange key start stop #start 为0 stop为-1时获取所有元素
指定索引的元素值:lset key index value
将前count次出现的值为value的元素移除 : lrem key count value #count为<0时 从头往后删除 ==0 删除全部
set命令:
无序集合
设置值:sadd key member1 member2 #member为string类型
返回所有的元素:smembers key
删除指定元素: srem key menber
zset 命令:
有序集合
每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
无修改操作
设置值:zadd key score1 member1 score2 member2 #member为string类型
获取:zrange key start stop #类似list
返回权重值在min和mix之间的成员:zrangebyscore key min max
返回某个成员的score:zscore key member
删除: zrem key member1 member2
与python交互
导入redis包
from redis import *
创建StrictRedis对象,与redis服务器建⽴连接
sr = StrictRedis()
sr对象就可以使用上面的方法去操作redis数据库了
在Django中,用redis存储session需要先在虚拟环境中安装redis包
pip install django-redis-sessions==0.5.6
同时还要修改setting文件,增加下面:
SESSION_ENGINE = 'redis_sessions.session'
SESSION_REDIS_HOST = 'localhost'
SESSION_REDIS_PORT = 6379 //默认为6379
SESSION_REDIS_DB = 2 //指定使用第二个数据库,默认有16个数据库即0-15
SESSION_REDIS_PASSWORD = ''
SESSION_REDIS_PREFIX = 'session' //唯一标识码
如果不指定redis作为存储,则Django中默认使用Django提供的Django_session表进行存储。