内置在python包中的redis

redislite的Python项目详细描述


再结晶

Build StatusCoverageCurrent VersionSupported PythonLicenseDocumentation

说明

redislite是redis键值存储的自包含python接口。

它为redis提供了redis py python绑定的增强版本。提供以下附加功能:

  • 易于使用-它提供了一个内置的redis服务器,在使用redis绑定时会自动安装、配置和管理该服务器。
  • {STR 1 } $灵活< /强> -创建由多个程序或多个独立服务器共享的单个服务器。redistite提供的所有服务器都支持所有redis功能,包括复制和群集等高级功能。
  • {STR 1 } $兼容< /强> -它提供了ReDISPyPythReDIS绑定的增强版本以及修补它们的功能,以允许大多数使用它们的代码在很少或没有修改的情况下运行。
  • secure-它使用一个安全的默认redis配置,只有运行它的计算机系统上的创建用户才能访问该配置。

要求

redislite模块需要python 2.7或更高版本。

在Linux上安装需求

确保在安装redislite时python开发头可用。

在ubuntu/debian系统上,使用以下命令安装它们:

apt-get install python-dev

在Redhat/Fedora系统上,使用以下命令安装它们:

yum install python-devel

在mac osx上安装要求

默认情况下,redislite for osx是一个轮子包,可以安装 使用当前版本的pip。

要使用sdist包在macosx上安装redistite,您需要 已安装xcode命令行实用程序。如果没有xcode 安装在最新的OSX版本上 跑步:

xcode-select --install

在Microsoft Windows上安装要求

redislite可以安装在ubuntu shell上bash下较新版本的windows 10上。

按照https://msdn.microsoft.com/commandline/wsl/install_guide中的说明安装

然后启动bash shell并安装python dev包,如下所示:

apt-get install python-dev

安装

要安装Redistite,只需:

$ pip install redislite

或来源:

$ python setup.py install

开始

redisite提供了redis py redis.redis()和 redis.strictredis()类的参数与对应的 redis类并接受一个额外的可选参数。哪一个是 要使用的redis rdb文件的名称。如果不提供参数,它将 创建设置新的redis服务器。

redisite还提供了monkeypatch redis.redis和 ReDist.StuttReDIS类使用ReDelLITE,因此使用现有的Python代码 redis可以使用redistite版本。

示例

下面是一些使用redislite模块的示例。

设置值

在这里,我们打开一个python shell并在嵌入式redis数据库中设置一个键。当 当Python解释器退出时,创建RESUDE()对象并将其关闭。

>>>fromredisliteimportRedis>>>redis_connection=Redis('/tmp/redis.db')>>>redis_connection.keys()[]>>>redis_connection.set('key','value')True>>>redis_connection.get('key')'value'

持久性

现在我们打开同一个redis数据库并访问上次运行时创建的密钥。重新发布将自动启动 redis服务器使用与上次相同的配置,因此在上一个示例中设置的值仍然可用。

>>>fromredisliteimportRedis>>>redis_connection=Redis('/tmp/redis.db')>>>redis_connection.keys()['key']>>>redis_connection.get('key')'value'

兼容性

可以对普通的redis类进行monkeypatch以允许模块 使用redis来使用redistite类的。在这里我们修补redis并使用 redis_collections模块。

>>>importredislite.patch>>>redislite.patch.patch_redis()>>>importredis_collections>>>td=redis_collections.Dict()>>>td['foo']='bar'>>>td.keys()['foo']

运行和使用多台服务器

如果未指定redis rdb文件名或该文件名是新的,redisite将启动一个新服务器。在本例中,我们启动了10个独立的redis服务器,并在每台服务器中将密钥“servernumber”的值设置为不同的值。

然后我们进入T“服务器号”的值并打印出来。

>>>importredislite>>>servers={}>>>forredis_server_numberinrange(10):...servers[redis_server_number]=redislite.Redis()...servers[redis_server_number].set('servernumber',redis_server_number)...TrueTrueTrueTrueTrueTrueTrueTrueTrueTrue>>>forredis_serverinservers.values():...redis_server.get('servernumber')...b'0'b'1'b'2'b'3'b'4'b'5'b'6'b'7'b'8'b'9'

在同一脚本中具有不同配置的多个服务器

可以使用不同的 redis服务器的配置设置。下面是一个例子 redis服务器实例。一个实例配置为监听端口8002, 第二个实例是第一个实例的只读从属实例。

>>>importredislite>>>master=redislite.Redis(serverconfig={'port':'8002'})>>>slave=redislite.Redis(serverconfig={'slaveof':"127.0.0.1 8002"})>>>slave.keys()[]>>>master.set('key','value')True>>>master.keys()['key']>>>slave.keys()['key']>>>

更多信息

在redislite文档页上有更详细的信息 http://redislite.readthedocs.org/en/latest/

redistite是新bsd许可下的免费软件,请参见license.txt 细节。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将一个节点拖到另一个不运行JavaFX的节点中   java如何在spring boot中创建完全自定义的查询   java Arraylist和ArrayListBlockingQueue之间的区别是什么?   java Weblogic会中断长时间运行的线程吗   java如何调用displayAd()方法?   使用数组在两个组之间进行java IPL匹配   java如何在Eclipse中的org下创建测试套件。朱尼特   java获取屏幕上任意点的鼠标坐标   正则表达式需要java正则表达式方面的帮助   如何使用Java获取Ram大小和硬盘大小?   java如何将所需长度设置为数组中的整数?   安卓应用程序启动前的java程序已终止   swing设置要在Java代码中打印的页边距   迭代期间java故障安全迭代器的删除   java如何在main中调用方法,以便它们在同一行上输出?   编译Java:尝试播放mp3文件时出错   java如何使用Spring数据Rest在POST调用中保存嵌入对象   java JAXWS如何在端点外部注入SecurityContext