`

python使用redis 神器 ---redisco(一)

 
阅读更多

  很久没认真推荐过东西了,实在是人懒也没以前那么有心思去研究新东西,其实本文要推荐的玩意儿也不是自己发现的,是一为技术宅同事瞎逛github后发现推荐给我的。

 

  好了废话不多说,直接进正题。今天我要推荐的是一款python的redis工具。看到这里肯定很多人就要喷了,redis官方本来就有python的第三方库(redis)了为什么还要你来推荐。行,别急,听我先解释redisco的不同点。


redisco:

1)纯pyhton开发而成,你可以直接看它的源码(github地址:https://github.com/iamteem/redisco).

2) 带有redis的所有功能,因为它是基于redis这个官方的库上开发而成的.

3) 可以以django自带orm的方式将数据存入redis,并且提供了大多数和django的orm相同的查询功能.



其实我主要就是要介绍上面的第三点,redisco的model(django里也叫着名字)类,它提供的这种能让数据以类似python内部的dict或者class的形式存储到redis里,这样我们对redis的使用就接近nosql数据库了(因为redis自带持久化存储的功能)。


手把手教程范例教程开始:


创建一个你要存进redis的模型,你可以理解为是mysql里的表,需要继承models.Model类

from redisco import models
class Person(models.Model):
    name = models.Attribute(required=True)
    created_at = models.DateTimeField(auto_now_add=True)
    fave_colors = models.ListField(str)
 

类里面支持的所有数据类型如下:

 


Model Attributes

Attribute
Stores unicode strings. If used for large bodies of text, turn indexing of this field off by setting indexed=True.
IntegerField
Stores an int. Ints are stringified using unicode() before saving to Redis.
Counter
An IntegerField that can only be accessed via Model.incr and Model.decr.
DateTimeField
Can store a DateTime object. Saved in the Redis store as a float.
DateField
Can store a Date object. Saved in Redis as a float.
FloatField
Can store floats.
BooleanField
Can store bools. Saved in Redis as 1's and 0's.
ReferenceField
可以引用其他的model.Model类,比如可以在一个通讯录类里增加一个字段它的类型是人物这个类他们都继承model.Model类但可以互相引用这样你就可以直接通过 通讯录.人物这样的方式调用(之后的文章会详细介绍)
ListField
列表类型,使用跟python的list一样可以将 python里的unicode, int, float和其他redisco.model类放进去
生成一个Person类的数据
 >>person = Person(name="hupu")

   因为name是必填字段所以必须要给


  然后 调用save方法就存储到redis里去了。


>>person.save()
True

返回True就是成功了。



查询刚刚存进去的数据,跟django的orm真的很像

>>conchita = Person.objects.filter(name='hupu')[0]


查询所有的Person

>> all_person = Person.objects.all()


查询age大于某5岁


>> all_person = Person.objects.zfilter(age__gt=5)            小于 就是 字段名__lt 范围 就是 字段名__in=(0,5)


查询范围的都是一个list别忘了[0] 来获得一个结果


最后提一点,redisco.model.Model类存储数据时,对于除了Counter类型以外的所有类型字段有更改比如 person.age = 5 将年龄改为5 都要调用person.save()方法才能更改成功。

 

 

 

 

更多的功能可以看它的测试代码里的例子https://github.com/iamteem/redisco/blob/master/tests/models.py 和 https://github.com/iamteem/redisco  首页的文档。

 

 

分享到:
评论

相关推荐

    redis-py-cluster-1.3.5.tar.gz

    而`redis-py-cluster`是Python连接Redis集群的一个库,它允许Python开发者方便地与Redis集群进行交互。`redis-py-cluster-1.3.5.tar.gz`这个压缩包文件包含了该库的源代码和相关资源,版本号为1.3.5。 首先,让我们...

    Python库 | redis-benchmarks-specification-0.1.8.tar.gz

    标题中的"redis-benchmarks-specification-0.1.8.tar.gz"是一个针对Redis性能基准测试规范的Python库。这个库通常用于评估和比较不同版本的Redis或与Redis相关的实现,确保它们在处理大量数据、并发请求和其他关键...

    redis-stack-server 7.2.0 安装包合集

    redis-stack-server-7.2.0-v9.arm64.snap redis-stack-server-7.2.0-v9.bionic.arm64.tar.gz redis-stack-server-7.2.0-v9.bionic.x86_64.tar.gz redis-stack-server-7.2.0-v9.bullseye.x86_64.tar.gz redis-stack-...

    PyPI 官网下载 | redis-py-cluster-1.1.0.tar.gz

    总之,`redis-py-cluster`为Python开发者提供了一种高效且易于使用的接口,以便在Python应用程序中充分利用Redis集群的强大功能。无论是在小型项目还是大型分布式系统中,它都是一个值得信赖的工具。

    tomcat-redis-session-manager-1.2-tomcat-7-java-7

    tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-...

    redis-5.0.14-1.el7.remi.x86-64.rpm安装包(含有部署手册)

    redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm...

    redis++使用说明,windows下编译redis-plus-plus

    "Redis++使用说明,windows下编译Redis-Plus-Plus" 在这篇文章中,我们将详细介绍如何在Windows平台下编译Redis++,包括编译hiredis.lib和Win32_Interop.lib静态库文件的过程,然后安装Cmake并编译Redis++,最后...

    Python库 | python-redis-orm-0.4.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:python-redis-orm-0.4.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    redis校验工具redis-full-check

    在使用 `redis-full-check` 之前,确保你已经安装了 Redis 客户端库(如 `redis-cli`)和工具本身。运行该工具时,通常需要提供 Redis 实例的 IP 地址、端口和认证信息(如果配置了密码)。例如,基本用法可能如下:...

    redis-rdb-tools-master的安装与简单使用.zip

    为了方便管理和维护Redis的数据,开发者设计了一系列的工具,其中`redis-rdb-tools`是一个专门用于分析Redis的RDB(持久化文件)的工具集。RDB是Redis默认的持久化方式之一,它会定期将内存中的数据快照保存到磁盘上...

    redis-5.0.5.tar.gz

    redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-...

    python-redis-2.10.3-1.el7.noarch.rpm

    官方离线安装包,亲测可用

    Redis-x64-5.0.14.msi和Redis-x64-5.0.14.zip

    另一方面,`.zip`文件是常见的文件压缩格式,`Redis-x64-5.0.14.zip`包含的是未经过Windows Installer打包的Redis文件。解压后,你可以找到包括`redis-server.exe`、`redis-cli.exe`等在内的可执行文件,以及配置...

    tomcat-redis-session-manager的jar包-包含Tomcat7和Tomcat8

    在配置Tomcat-Redis-Session-Manager时,开发者需要在Tomcat的`context.xml`文件中添加相关的manager配置,指定使用Redis作为session存储。这通常涉及设置`Manager`元素的`className`属性为`org.apache.catalina....

    redis+redis-desktop-manager-0.8.3.3850+笔记

    1. 下载源码包:`redis-2.8.13.tar.gz` 是Redis的源码包,解压后进行编译和安装。 2. 解压:`tar -zxvf redis-2.8.13.tar.gz` 3. 编译:`cd redis-2.8.13`,然后`make` 4. 安装:`sudo make install` 5. 启动Redis...

    python3-redis-3.3.8-1.el8.noarch.rpm

    官方离线安装包,亲测可用

    Redis-x64-3.2.100.zip

    redis-serviceinstall .cmd安装成服务脚本(redis设置成windows下的服务,redis-serviceinstall .cmd脚本内容如下) redis-server --service-install redis.windows-service.conf --loglevel verbose redis-server -...

    tomcat-redis-session-manager-master-2.0.0

    tomcat-redis-session-manager-2.0.0.jar jedis-2.5.2.jar commons-pool2-2.2.jar 2.修改 conf 目录下的 context.xml 文件 host="localhost" port="6379" database="0" maxInactiveInterval="60" /> ...

    tomcat-redis-session-manager包集合下载(tomcat8)

    【描述】中提到的"所需的tomcat-redis-session-manager所有的jar包下载"意味着我们需要了解如何配置和使用这个第三方库,以便在Tomcat8环境中存储和检索用户的session数据到Redis缓存系统。测试环境使用的是JDK1.8,...

    Python库 | redis-simple-cache-3k-0.0.7.tar.gz

    本文将深入探讨Python中的一个库——redis-simple-cache-3k-0.0.7,它是一个基于Redis的简单缓存解决方案,旨在为Python开发者提供快速、可靠的缓存功能。 Redis,全称为REmote Dictionary Server,是一款开源的、...

Global site tag (gtag.js) - Google Analytics