redis数据库
1.nosql介绍
NoSQL:⼀类新出现的数据库(not only sql)
- 泛指⾮关系型的数据库
- nosql⼀般可以存储多种数据类型, 除了基本类型(数字、字符串、⽇期),还可以存储json、html等⽂件类型
- 数据以键值⽅式存取, 不能像关系型数据库⼀样使⽤外键建⽴表之间的关系, 不适合⽤于关系特别复杂的数据查询场
景 - 每种nosql数据库都有⾃⼰的api和语法, 不⽀持SQL语法
- “事务”的⽀持:sql对事务的⽀持⾮常完善,⽽nosql基本不⽀持事务
6.NoSQL中的产品种类相当多, 各有⾃⼰擅⻓的业务场景:
Mongodb
Redis
Hbase hadoop
Cassandra hadoop
2.Redis简介
- Redis是⼀个开源的使⽤ANSI C语⾔编写、⽀持⽹络、可基于内存亦可持久化的⽇志型、Key-Value数据库,并提
供多种语⾔的API。从2010年3⽉15⽇起,Redis的开发⼯作由VMware主持。从2013年5⽉开始,Redis的开发由
Pivotal赞助。 - Redis是 NoSQL技术阵营中的⼀员,它通过多种键值数据类型来适应不同场景下的存储需求,借助⼀些⾼层级的接
⼝使⽤其可以胜任,如缓存、队列系统的不同⻆⾊
2.1Redis 优势
- 性能极⾼ – 内存型数据库,读写速度极快
- 丰富的数据类型 – ⽀持存储 Strings, Lists, Hashes, Sets 及 Ordered Sets 等多种数据类型。
- 数据持久化 – 可以将内存数据保存到磁盘中, 并提供多种存储机制。
- 数据备份 – ⽀持主从模式 (master - slave) 的数据备份。
- 集群 – ⽀持集群, 并实现了哨兵机制。
- 丰富的特性 – 设置过期时间, 发布/订阅, 通知等机制。
2.2Redis应⽤场景
- session存储 (性能更好, ⽅便设置过期时间)
- 购物⻋ (以请求令牌token作为key,记录当前⽤户购物⻋中的商品及其数量)
- ⽹⻚缓存 (将 请求的url/返回的⽹⻚内容 作为redis的key/value进⾏缓存)
3 python交互
需要安装
pip install redis
python 交互
from redis import Redis
rs = Redis(host='127.0.0.1',port=6379,db=0,decode_responses=True)
#操作数据库
# string常用操作命令
rs.set('name','zs')
print(rs.get('name'))
rs.mset({'name':'ls','age':18})
print(rs.mget(['name','age']))
rs.append('name','hh')
print(rs.mget(['name','age']))
# 健常用操作命令
rs.delete('name')
print(rs.exists('name'))
rs.expire('age',20)
print(rs.ttl('age'))
print(rs.type('age'))
print(rs.keys('a*'))
# hash操作命令
rs.hset('zs','name','zhangsan')
print(rs.hget('zs','name'))
rs.hmset('zs',{'name':'lisi','age':18})
print(rs.hmget('zs',['name','age']))
print(rs.keys('zs'))
print(rs.hvals('zs'))
rs.hdel('zs','age')
print(rs.keys('zs'))
print(rs.hvals('zs'))