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简单使用的更多相关文章

  1. python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改、删除操作

    python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改.删除操作 项目目录: ├── flask_redis_news.py ├── forms.py ├ ...

  2. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

  3. python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查

    python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...

  4. python操作三大主流数据库(10)python操作mongodb数据库④mongodb新闻项目实战

    python操作mongodb数据库④mongodb新闻项目实战 参考文档:http://flask-mongoengine.readthedocs.io/en/latest/ 目录: [root@n ...

  5. python操作三大主流数据库(9)python操作mongodb数据库③mongodb odm模型mongoengine的使用

    python操作mongodb数据库③mongodb odm模型mongoengine的使用 文档:http://mongoengine-odm.readthedocs.io/guide/ 安装pip ...

  6. python操作三大主流数据库(7)python操作mongodb数据库①mongodb的安装和简单使用

    python操作mongodb数据库①mongodb的安装和简单使用 参考文档:中文版:http://www.mongoing.com/docs/crud.html英文版:https://docs.m ...

  7. python操作三大主流数据库(6)python操作mysql⑥新闻管理后台功能的完善(增、ajax异步删除新闻、改、查)

    python操作mysql⑥新闻管理后台功能的完善(增.删.改.查)安装表单验证D:\python\python_mysql_redis_mongodb\version02>pip instal ...

  8. python操作三大主流数据库(4)python操作mysql④python服务端flask和前端bootstrap框架结合实现新闻展示

    python操作mysql④python服务端flask和前端bootstrap框架结合实现新闻展示 参考文档http://flask.pocoo.org/docs/0.11/http://flask ...

  9. python操作三大主流数据库(3)python操作mysql③python操作mysql的orm工具sqlaichemy安装配置和使用

    python操作mysql③python操作mysql的orm工具sqlaichemy安装配置和使用 手册地址: http://docs.sqlalchemy.org/en/rel_1_1/orm/i ...

随机推荐

  1. 那些年我们没能bypass的xss filter[from wooyun]

    原文链接:http://zone.wooyun.org/content/6899 小弟初学xss才10天.不过个人很喜欢收集xss payload.在这里把自己平时挖xss时会用到的payloads列 ...

  2. Docker 从入门到放弃(四)Docker+Jenkins_自动化持续集成

    Windows 查看密码 $ cat /var/jenkins_home/secrets/initialAdminPassword 14e14c414f41481aa5955753d3f31f9f 自 ...

  3. [Android] Android ViewPager 中加载 Fragment的两种方式 方式(一)

    Android ViewPager 中加载 Fragmenet的两种方式 一.当fragment里面的内容较少时,直接 使用fragment xml布局文件填充 文件总数 布局文件:view_one. ...

  4. python实现双向链表

    双向链表 一种更复杂的链表是“双向链表”或“双面链表”.每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值:而另一个指向下一个节点,当此节点为最后一个节点时,指向空值. 实现 c ...

  5. java定时器实现总结

    前言:Java定时器目前主要有3种实现方式:JDK组件,Spring Task,Quartz框架. 1. JDK组件(1) java.util.TimerTask MyTimerTask.java: ...

  6. WEBGIS网页崩溃问题分析

    加载某一地区的系统页面时,过了几十秒,页面空白.曾经捕获到是WMTS服务异常的问题.本人推测可能是底图服务停止,使得WMTS服务无法进行而抛出的异常. 为了证实自己的猜想,鄙人对一个正常的系统,修改为 ...

  7. WEUI控件JS用法

    /* dialog */ document.querySelector('#alertBtn').addEventListener('click', function () { _weui2.defa ...

  8. verilog仿真文件编写

    verilog仿真文件大概框架: ·timescale 1ns/1ps //但需要时间 module xxx_tb(); //仿真文件不需要输入和输出, intput clk; ] xx; //根据需 ...

  9. mvc EF框架中,加载外键对象序列化对象时报错 序列化类型为XX的对象时检测到循环引用

    Newtonsoft.Json.dll 或者通过->工具->库程序包管理工具->NuGet管理包->联机 输入Newtonsoft或者json.net Newtonsoft.J ...

  10. pyqt5-QWidget坐标系统和大小

    获取坐标和尺寸: 坐标的获取视频教程:https://v.qq.com/x/page/t085892mzh9.html  x()    y()   返回控件的坐标 相对于父控件的坐标(窗口框架左上角) ...