Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
1-概览
Redis是典型的Key-Value类型数据库,Key为字符类型,Value的类型常用的为五种类型:String、Hash 、List 、 Set 、 Ordered Set
2- Redis内部内存管理
这里写图片描述
redis的读写结构
redis数据库最外层是一个字典 最外层的字典内每个key-value都是name-dic结构 也就是每个元素都是(字典名称-字典x)的结构,空可以作为字典名称, 而字典x内的可以存储上面的所有数据类型.
所以我们在操作时,如果指定字典名称,就进入对应的字典,如果没有指定字典名称,就进入名称为空的字典进行操作.
案例
调试环境python3.6,调试python操作redis数据库,首先要在本地或服务器安装redis数据库。安装参考:http://blog.csdn.net/luanpeng825485697/article/details/79363000
在python3.6下我们使用redis库。
>>>pip install redis
1
安装python库的方法,请查看Python库的安装与卸载
安装成功后就可以编程代码实现python对redis数据库的操作了
python3.6操作redis数据库前请先确保redis服务已经打开
python3.6下代码如下
python3.6操作redis数据库。使用前请先确保redis服务已经打开
>>>print("=====================redis数据库=====================")
>>>import redis
连接数据库
>>>r = redis.Redis(host='127.0.0.1', port=6379,db=0)
使用连接池连接数据库。这样就可以实现多个Redis实例共享一个连接池
>>>pool = redis.ConnectionPool(host='127.0.0.1', port=6379)
>>>r = redis.Redis(connection_pool=pool)
1、String 操作
在Redis中设置值,默认不存在则创建,存在则修改
>>>r.set('name', 'zhangsan')
>>>r.mset(name1='zhangsan', name2='lisi') #批量设置值
>>>r.mset({
"name3":'zhangsan1', "name4":'lisi1'}) #批量设置值
字符串局部更新。setrange(name, offset, value)
>>>r.setrange("name",1,"z") #修改字符串内容,从指定字符串索引开始向后替换
>>>r.setrange("name",6,"zzzzzzz") #如果新值太长时,则向后添加
参数:set(name, value, ex=None, px=None, nx=False, xx=False)
ex,过期时间(秒)
px,过期时间(毫秒)
nx,如果设置为True,则只有name不存在时,当前set操作才执行,同setnx(name, value)
xx,如果设置为True,则只有name存在时,当前set操作才执行
r.setex(name, value, time)
设置过期时间(秒)
>>>r.psetex(name, time_ms, value)
设置过期时间(毫秒)
字符串转化为整型,再自增属性mount对应的值,当属性mount不存在时,则创建mount=amount,否则,则自增,amount为自增数(整数)
>>>print(r.incr("mount",amount=2))
>>>print(r.incr("mount"))
>>>print(r.incr("mount",amount=3))
>>>print(r.