python作为一种处理数据的脚本语言本身有许多方法函数供大家使用,有时候为了提升数据处理速度(如海量数据的访问或者海量数据的读取),涉及分布式管理架构,可能需要用到Redis,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

下面简单介绍下python中Redis的使用:

1、最简单的redis连接(无密码):

r = redis.Redis(host='localhost', port=6379,db=1, decode_responses=True)

host为主机号,port为端口号,一般redis默认为6379,db为你操作缓存数据库的database_name,在redis中的dbname默认从0开始,也可以自己定义,有需要的可以下载Redis Desktop Manager对redis进行可视化操作,官方下载地址:https://redisdesktop.com/。

加上decode_responses=True,写入的键值对中的value为str类型,不加这个参数写入的则为字节类型。

接下来针对我们连接到的redis资源可以开始进行简单的set和get操作

r.set('name', 'yyy',ex=10)
r.set('age', 24,px=1000)
r.set('iphone', 22222)
print(r['name'])
print(r.get['age'])
print(r.get('iphone'))

此处的ex指name字段失效时间为10s,px单位为毫秒,失效时间为1000毫秒,不指定可以持久化存储,上面的代码name等10之后就取不到了,因为失效了,资源释放了,但是iphone可以get到

具体可以带的参数有:

ex,过期时间(秒)
px,过期时间(毫秒)
nx,如果设置为True,则只有name不存在时,当前set操作才执行
xx,如果设置为True,则只有name存在时,当前set操作才执行

2.有关redis的ConnectionPool操作(无密码):

pool=redis.ConnectionPool(host='localhost', port=6379,db=1,decode_responses=True)
r=redis.Redis(connection_pool=pool)

默认情况下,您创建的每个Redis实例将依次创建自己的连接池。您可以通过将已创建的连接池实例传递给Redis类的connection_pool参数来覆盖此行为并使用现有连接池。您可以选择这样做,以实现客户端分片或更好地控制连接的管理方式。

pool = redis.ConnectionPool(connection_class = YourConnectionClass, your_arg = '...',...)

您也可以创建自己的连接子类。如果你想控制异步框架内的套接字行为,这可能很有用。要使用自己的连接实例化客户端类,您需要创建一个连接池,将您的类传递给connection_class参数。传递给池的其他关键字参数将传递给在初始化期间指定的类。

接下来我们可以针对上述连接池进行操作测试:

pool=redis.ConnectionPool(host='localhost', port=6379,db=1,decode_responses=True)
r=redis.Redis(connection_pool=pool)
lists=[]
data={"city":"tianjing","region":"guangzhou","name":"dsfdsf"}
data2 = {"city": "guangzhou", "region": "guangzhou", "name": "dsfdsf"}
data3= {"city": "beijing", "region": "guangzhou", "set": "324"}
lists.append("data")
lists.append("data2")
lists.append("data3") #列表转dataframe
df=pd.DataFrame(lists) #dataframe转jsonstr,因为redis是键值对存储
jsondf=df.to_json(orient='index') r.lpush("goods2",jsondf) #通过lpop取出redis里面的值,这是一种队列操作,一个一个的取出来
vs=r.lpop("goods2") # 取出的数据转字典进行遍历
data = json.loads(vs, encoding='utf-8') print(type(data))
print(data)
for v in data.items():
print(v)

需要注意的是你往redis里面放的数据是键值对类型的,所以取出来的时候也是key——value样式,所以这里为了操作方便可以将list或者set或者hash一类的转jsonstr进行存储,取出来的时候再转回去就可以了。

接下来的微博我们将针对redis进行其他操作,喜欢的朋友欢迎收看。

有关在python中使用Redis(一)的更多相关文章

  1. redis的安装使用以及在python中操作redis

    一.Redis介绍: Redis可以看作是一个key-value的存储系统,它为我们提供了丰富的数据结构,包括lists,sets,ordered sets和hashes.还包括了对这些数据结构的丰富 ...

  2. Python中的 redis keyspace 通知

    介绍 Redis是内存中的数据结构存储,用于缓存.高速数据摄取.处理消息队列.分布式锁定等等. 与其他内存存储相比,使用Redis的优势在于它提供了持久性和数据结构,比如列表.集合.排序集合和散列. ...

  3. python中的Redis键空间通知(过期回调)

    介绍 Redis是一个内存数据结构存储库,用于缓存,高速数据摄取,处理消息队列,分布式锁定等等. 使用Redis优于其他内存存储的优点是Redis提供持久性和数据结构,如列表,集合,有序集和散列. 在 ...

  4. 在Python中使用Redis

    在Python中要使用Redis数据库,首先要安装redis 之前的博客中有写到在命令行模式下操作Redis数据库. 要在项目中使用的话可以这么做: 通过初始化 redis.Redis,得到返回的对象 ...

  5. $Django python中使用redis, django中使用(封装了),redis开启事务(管道)

    一 Python操作Redis之普通连接 #先安装 pip3 install redis import redis r = redis.Redis(host='127.0.0.1', port=637 ...

  6. python中利用redis构建任务队列(queue)

    Python中的使用标准queue模块就可以建立多进程使用的队列,但是使用redis和redis-queue(rq)模块使这一操作更加简单. Part 1. 比如首先我们使用队列来简单的储存数据:我们 ...

  7. 有关在python中使用Redis(二)

    这里简单介绍下在python中使用如何使用hashset,set和list: 从list开始: 一般我们使用lpush对一个list进行初始化添加,但是如果需要不断往这个list里面加值,就要用rpu ...

  8. python中使用redis

    准备 安装redis服务 点击查看Ubuntu中安装Redis. 安装依赖包 pip install redis 使用 import redis 创建连接 1.普通连接: conn = redis.R ...

  9. Python中的redis学习笔记

    redis是一个key-value结构的数据库,value的格式可以使string,set,list,map(即python里面的dict),sorted set(有序集合) 1.初始化 1)直接连接 ...

随机推荐

  1. TreeView滚动TreeViewItem

    今天帮忙修了一个bug, 在拖动TreeViewItem时,需要滚动TreeView向前翻页,或向后翻页. 思路: 1.找到TreeView控件里的ItemsControl 2.找到ItemsCont ...

  2. WPF GridView中的CellTemplate失效的原因

    最近做一个ListView的Style时,发现一个问题, 就是我的GridView的GridViewColumn的CellTemplate无论是用StaticResource还是DynamicReso ...

  3. Python实例浅谈之五Python守护进程和脚本单例运行

    一.简介 守护进程最重要的特性是后台运行:它必须与其运行前的环境隔离开来,这些环境包括未关闭的文件描述符.控制终端.会话和进程组.工作目录以及文件创建掩码等:它可以在系统启动时从启动脚本/etc/rc ...

  4. 面向对象(static关键字)

    static关键字:用于修饰成员(成员变量和成员函数) 被修饰后的成员具备以下特点: 随着类的加载而加载 优先于对象存在 被所有的对象共享 可以直接被类名调用 使用注意: 静态方法只能访问静态成员 静 ...

  5. oracle 日期问题 网上找到自己查阅时方便

    第一部分:oracle sql日期比较: oracle sql日期比较:在今天之前: select*from up_date whereupdate< to_date('2007-09-07 0 ...

  6. 使用Postman测试请求

    Postman是什么 在开发或者调试网络程序或者是网页B/S模式的程序的时候,需要一些方法来跟踪网页请求,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具. 网页调试工具Postm ...

  7. iOS有用的三方库和高效工具记录

    DKNightVersion https://github.com/Draveness/DKNightVersion#podfile 用来为APP添加夜间模式和换肤功能

  8. 新手必看】Highcharts的100个基础问答

    新手必看]Highcharts的100个基础问答 2014-12-2 10:59| 发布者: Mr.Zhang| 查看: 2749| 评论: 3|来自: Highcharts中文论坛   摘要: 1. ...

  9. 当Python中混进一只薛定谔的猫……

    本文原创并首发于公众号[Python猫],未经授权,请勿转载. 原文地址:https://mp.weixin.qq.com/s/-fFVTgWVsydFsNu1nyxUzA Python 是一门强大的 ...

  10. 洛谷P2414 [NOI2011]阿狸的打字机(AC自动机)

    传送门 考虑一下,如果串B在串A中出现过,那么A的fail指针必定直接或间接指向B 那么我们可以把fail树建起来,那么就变成B代表的节点的子树里有多少节点属于A 然后这就是一个序列统计问题,直接用d ...