python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用
python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用
redispy安装
安装及简单使用:https://github.com/andymccurdy/redis-py
api参考文档:http://redis-py.readthedocs.io/en/latest/
1.安装redis-py
pip install redis
C:\Users\ajie>workon flask
(flask) C:\Users\ajie>d:
(flask) d:\python_envs\flask>pip install redis
2.简单测试
#coding:utf-8 import redis # redis.Redis()兼容老版本,redis.StrictRedis()不考虑兼容性
r = redis.Redis(host='localhost', port=6379, db=0)
# r = redis.StrictRedis(host = 'localhost', port=6379, db=0) user1 = r.get('user1')
print(user1) (flask) d:\python_envs\flask>python python_redis.py
b'jhon'
3.python操作redis的常用方法
#coding:utf-8 import redis class Base(object):
def __init__(self):
self.r = redis.StrictRedis(host = 'localhost', port=6379, db=0) class StringTest(object):
def __init__(self):
# redis.Redis()兼容老版本,redis.StrictRedis()不考虑兼容性
# self.r = redis.Redis(host='localhost', port=6379, db=0)
self.r = redis.StrictRedis(host = 'localhost',
port=6379,
db=0,
decode_responses=True) def test_set(self):
''' set -- 设置值 '''
rest = self.r.set('user2', 'amy')
print(rest)
return rest def test_get(self):
'''get -- 获取值'''
rest = self.r.get('user2')
print(rest)
return rest def test_mset(self):
''' mset -- 设置多个键值对 '''
d = {
'user3': 'Bob',
'user4': 'Bobx'
}
rest = self.r.mset(d)
print(rest)
return rest def test_mget(self):
''' mset -- 设置多个键值对 '''
d = ['user3','user4']
rest = self.r.mget(d)
print(rest)
return rest def test_del(self):
''' del删除键值 '''
rest = self.r.delete('user3')
print(rest) def test_push(self):
''' lpush/rpush -- 从左/右插入数据 '''
t = ['Amy', 'Jhon']
# 如果不加*则会把两个元素当做整体存入
rest = self.r.lpush('l_eat3', *t)
print(rest)
rest = self.r.lrange('l_eat3', 0, -1)
print(rest) def test_pop(self):
''' lpop/rpop 移除最左/右边的元素并返回值'''
rest = self.r.lpop('l_eat3')
print(rest)
rest = self.r.lrange('l_eat3', 0, -1)
print(rest) class SetTest(Base):
def test_sadd(self):
''' sadd --添加元素 '''
l = ['cat', 'dog', 'monkey']
# rest = self.r.sadd('zoo2', l)
rest = self.r.sadd('zoo2', *l)
print(rest)
rest = self.r.smembers('zoo2')
print(rest) def test_srem(self):
''' srem -- 删除元素 '''
rest = self.r.srem('zoo2', 'monkey')
print(rest)
rest = self.r.smembers('zoo2')
print(rest) def test_sinter(self):
''' sinter --返回元素的交集 '''
rest = self.r.sinter('zoo2', 'zoo1')
print(rest) class HashTest(Base):
def hset_test(self):
''' hset设置新闻内容
self.r.hset(1,'title','朝鲜特种部队视频公布展示士兵身体素质与意志')
self.r.hset(1,'content','content01')
self.r.hset(1,'img_url','/static/img/news/01.png')
self.r.hset(1,'is_valid','true')
self.r.hset(1,'news_type','推荐') self.r.hset(2,'title','男子长得像\"祁同伟\"挨打 打人者:为何加害检察官')
self.r.hset(2,'content','因与热门电视剧中人物长相相近,男子竟然招来一顿拳打脚踢。4月19日,打人男子周某被抓获。半个月前,酒后的周某看到KTV里有一名男子很像电视剧中的反派。二话不说,周某冲上去就问你为什么要加害检察官?男子莫名其妙,回了一句神经病。周某一听气不打一处来,对着男子就是一顿拳打脚踢,嘴里面还念叨着,“叫你加害检察官,我打死你!”随后,周某趁机逃走。受伤男子立即报警,周某被上海警方上网通缉')
self.r.hset(2,'img_url','/static/img/news/02.png')
self.r.hset(2,'is_valid','true')
self.r.hset(2,'news_type','百家') ''' ''' mset/mget -- 设置/获取散列值'''
rest = self.r.hset('stu:002','name','tom')
print(rest)
rest = self.r.hexists('stu:002','name')
print(rest)
rest = self.r.hget('stu:002', 'name')
print(rest) def mset_test(self):
''' 获取新闻的数据 '''
# rest = self.r.hget(1,'title')
# print(rest.decode('utf-8'))
# rest = self.r.hget(1, 'news_type')
# print(rest.decode('utf-8')) # rest = self.r.hget(3,'title')
# print(rest.decode('utf-8'))
# rest = self.r.hget(3, 'news_type')
# print(rest.decode('utf-8')) # mset和hkeys
m = {
'name':'lily',
'age':18,
'grade':90
}
rest = self.r.hmset('stu:003', m)
print(rest)
rest = self.r.hkeys('stu:003')
print(rest)
rest = self.r.hvals('stu:003')
print(rest) def test_hgetall(self):
data = self.r.hgetall('news:3')
print(data['title'].decode('utf-8'))
print(data['content'].decode('utf-8')) def main():
# st = StringTest()
# st.test_set()
# st.test_get()
# st.test_mset()
# st.test_mget()
# st.test_del()
# st.test_push()
# st.test_pop() # set_test = SetTest()
# set_test.test_sadd()
# set_test.test_srem()
# set_test.test_sinter() ht = HashTest()
# ht.mset_test()
# ht.hset_test()
# ht.hget_test()
ht.test_hgetall() if __name__ == "__main__":
main()
python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用的更多相关文章
- python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改、删除操作
python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改.删除操作 项目目录: ├── flask_redis_news.py ├── forms.py ├ ...
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
- python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查
python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...
- python操作三大主流数据库(10)python操作mongodb数据库④mongodb新闻项目实战
python操作mongodb数据库④mongodb新闻项目实战 参考文档:http://flask-mongoengine.readthedocs.io/en/latest/ 目录: [root@n ...
- python操作三大主流数据库(9)python操作mongodb数据库③mongodb odm模型mongoengine的使用
python操作mongodb数据库③mongodb odm模型mongoengine的使用 文档:http://mongoengine-odm.readthedocs.io/guide/ 安装pip ...
- python操作三大主流数据库(7)python操作mongodb数据库①mongodb的安装和简单使用
python操作mongodb数据库①mongodb的安装和简单使用 参考文档:中文版:http://www.mongoing.com/docs/crud.html英文版:https://docs.m ...
- python操作三大主流数据库(6)python操作mysql⑥新闻管理后台功能的完善(增、ajax异步删除新闻、改、查)
python操作mysql⑥新闻管理后台功能的完善(增.删.改.查)安装表单验证D:\python\python_mysql_redis_mongodb\version02>pip instal ...
- python操作三大主流数据库(4)python操作mysql④python服务端flask和前端bootstrap框架结合实现新闻展示
python操作mysql④python服务端flask和前端bootstrap框架结合实现新闻展示 参考文档http://flask.pocoo.org/docs/0.11/http://flask ...
- python操作三大主流数据库(3)python操作mysql③python操作mysql的orm工具sqlaichemy安装配置和使用
python操作mysql③python操作mysql的orm工具sqlaichemy安装配置和使用 手册地址: http://docs.sqlalchemy.org/en/rel_1_1/orm/i ...
随机推荐
- 使用 highlight.js 在网页中高亮显示java 代码 【原】
<html> <head> <meta charset="UTF-8"> <script src="http://apps.bd ...
- Spark SQL基本概念与基本用法
1. Spark SQL概述 1.1 什么是Spark SQL Spark SQL是Spark用来处理结构化数据的一个模块,它提供了两个编程抽象分别叫做DataFrame和DataSet,它们用于作为 ...
- vue-if与vue-show的区别
两者都是动态显示DOM元素 不同点: 1.使用方式 v-if是根据后面数据的真假,来判断DOM的添加删除等操作 v-show只是在修改元素的css样式(display属性值) 2.实现过程 v ...
- 049、准备overlay网络实验环境(2019-03-14 周四)
参考https://www.cnblogs.com/CloudMan6/p/7270551.html 为了支持容器跨主机通信,Docker提供了overlay driver,使用户可以创建基于Vx ...
- Java9+版本中,Interface的内容
使用接口的注意事项: 1.接口没有静态代码块或者构造方法 2.一个类的父类是唯一的,但是一个类可以同时实现多个接口(区别) 3.如果实现类实现多个接口有重名的抽象方法,那么实现类只需要覆盖重写一个即可 ...
- jsp实现文件上传下载
文件上传: upload.jsp <form action="uploadServlet" method="post" enctype="mul ...
- Delegate与Event关系
1.Delegate是类型,Event是成员(本质为成员方法),Event成员类型派生于Delegate.仅此! 2.大概就好比说委托是C++里一个方法的模板,而event是这个模板具体的实现
- Chrome 浏览器快捷键
Ø 前言 记录下 Chrome 的快捷键,原文链接:http://www.cnblogs.com/mikalshao/archive/2010/11/03/1868568.html 1. 标 ...
- js apply使用
js中apply方法的使用 1.对象的继承,一般的做法是复制:Object.extend prototype.js的实现方式是: Object.extend = function(destinati ...
- 第24月第30天 scrapy《TensorFlow机器学习项目实战》项目记录
1.Scrapy https://www.imooc.com/learn/1017 https://github.com/pythonsite/spider/tree/master/jobboleSp ...