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 ...
随机推荐
- sql 三表左外链接的2种写法【原】
初始化语句 DROP TABLE student; ) )); ','bobo'); ','sisi'); ','gugu'); ','mimi'); DROP TABLE room; ) ),roo ...
- SQL Server进阶(十二)常用函数
在SQL 2012基础教程中列出子句是按照以下顺序进行逻辑处理. FROM WHERE GROUP BY HAVING SELECT ORDER BY FROM TableName WHERE Use ...
- 如何解决无法成功git commit 和git push
如何解决无法成功git commit 和git push 20155324王鸣宇.20155314刘子健 git add . 成功了 但是git commit无法实现. 我先尝试了卸载git 重新下载 ...
- mysql 约束和外键约束实例
1.约束保证数据的完整性和一致性. 2.约束分为表级约束和列级约束.(根据约束所针对的字段的数目的多少来决定) 列级约束:对一个数据列建立的约束 表级约束:对多个数据列建立的约束 列级约束即可以在列定 ...
- Docker(三)Docker是如何工作的
摘自 https://mp.weixin.qq.com/s/SsXIuDqeze_et8vWQ8fr3g 一.Docker Client 也称为Docker客户端.其实就是Docker提供命令行界面工 ...
- pycharm中创建包时加入的_init_.py文件及_all_的作用
init__.py的主要作用是: 1. Python中package的标识,不能删除 2. 定义__all__用来模糊导入 3. 编写Python代码(不建议在__init__中写python模块,可 ...
- Linux之文件恢复[extundelete,针对rm]
[恢复过程] 1.下载+安装extundelete cd /tmp wget wget http://jaist.dl.sourceforge.net/project/extundelete/extu ...
- steps/align_si.sh
usage: steps/align_si.sh <data-dir> <lang-dir> <src-dir> <align-dir> e.g.: s ...
- It's a Mod, Mod, Mod, Mod World Kattis - itsamodmodmodmodworld (等差数列求和取模)
题目链接: D - It's a Mod, Mod, Mod, Mod World Kattis - itsamodmodmodmodworld 具体的每个参数的代表什么直接看题面就好了. AC代码: ...
- HDU 4612 Warm up 连通图缩点
题目大意:给出一个连通图,求再一个边后,剩余的最少桥数. 题目思路:首先进行缩点得到重构后的图,求出重构后树的直径(通过两次BFS求出相距最远的两点间的距离),ans=重构图边数-树的直径 //#pr ...