python操作memcache/redis/rabbitmq

数据库操作:
- 数据库
- 表
a. 单表

b. 一对多
用户类型:
1 超级用户
2 普通用户
3 二笔用户
用户:
方式器 3(设置数字,约束=外键(表,列))
刘浩 6
何磊 3
何磊 3


c. 多对多
主机:主机名 ....
1 c1.com
2 c1.com
3 c1.com
4 c1.com

用户表:用户名 ....
1 严选育
2 卢饶
3 泥泞
4 利用三

装B:
用户 主机 时间
4 1 83
4 2 83
4 1 93
4 2 93
3 2 93


相亲:
1 严选育
2 卢饶
3 泥泞
4 利用三


记录:
男 女
4 3()
4 3
4 2
1 3

+联合唯一约束:(男 女 )
- 数据操作

insert into tb(name,age) values('root',18)

delete from tb where id > 1

update tb set age=73 where name='alex'

select * from tb;
select * from tb where id > 10
select nid,username,pwd from tb where id > 10

- pymysql
1. execute('select * from tb where name=%s','root')
2. execute("select * from tb "); fetchone...
3. [(1,root,19),(2,root,19),]
[{},{},]
4. lastrowid 获取自增的ID值


1. MySQL补充
group by
- 对列进行聚合 sum(sid),max(sid),min(sid),count(sid)
- 聚合条件过滤,having count(sid) > 7

连表操作
- inner join: 不会出现null
- left join :左侧,有多少显示多少,连表无对应项:null
- right join

PS:
FK:
- 存储省
- 查询慢
优点:程序员省事

No FK:
- 存储不省
- 查询快
优点:查询快
缺点:程序员维护数据

Django:神奇的双下划綫

练习题:
http://www.cnblogs.com/wupeiqi/articles/5729934.html
http://www.cnblogs.com/wupeiqi/articles/5748496.html


2. Memcached
服务端:
远程服务器上的软件,在内存中操作数据
字典:{
k:"asdfasdf",
k:"asdfasdf",
}
客户端
连接:
python-memcached
pylibmc

3. redis

{
k1:"asdfasdf",string 字符串
k2:[1,2,1,2],list 列表
k3:{'k1':1,'k2':2},hash字典
k4:{1,2,4,5,1,},集合
k5:{(1,60),(2,70),(3,6)},有序集合
}


1. 连接
2. 连接池
pool = redis.ConnectionPool(host='10.211.55.4', port=6379, max_connections=10)
conn = redis.Redis(connection_pool=pool)
3. 支持事务
4. 发布和订阅

4. RabbitMQ


exchange ==>


RPC




 


posted @ 2017-04-06 14:41  春野之火  阅读(129)  评论(0编辑  收藏  举报