内置在python包中的redis
redislite的Python项目详细描述
再结晶
说明
redislite是redis键值存储的自包含python接口。
它为redis提供了redis py python绑定的增强版本。提供以下附加功能:
- 易于使用-它提供了一个内置的redis服务器,在使用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 细节。