通过Redis协议访问Apache Ignite
从1.8.0版本开始,Ignite引入了对Redis协议的支持,并且实现了一个命令集,这样,就可以通过任何Redis客户端存储和访问网格中的数据。在本文中,可以看到如何连接到Ignite集群并且进行一些Redis字符串操作。 目前,支持的命令的范围还比较有限,主要针对的是Redis的字符串操作,但是支持更多的命令已经纳入未来的计划。 Ignite具有非常丰富的功能,使用Java、C++、C#来处理网格中的数据,因此下面会选择Python的客户端然后执行一些字符串操作。 首先,需要有一个正在运行的Ignite集群(或者一个单一实例),每个Ignite节点默认都会在[host]:11211监听所有的输入请求,但是通过覆写Ignite的ConnectorConfiguration ,也可以轻易地切换到Redis的默认端口,如下所示:
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
...
<property name="connectorConfiguration">
<bean class="org.apache.ignite.configuration.ConnectorConfiguration">
<property name="host" value="localhost"/>
<property name="port" value="6379"/>
</bean>
</property>
</bean>
要接入集群, 需要redis-py
,按照这里的描述正确安装后,进入Python解释器,就可以连接了,如下所示:
>>> import redis
>>> r = redis.StrictRedis(host='localhost', port=6379, db=0)
如前文所述,当前的Redis支持范围仅限于字符串,在Redis中,因为它是用途最多,是最经常被使用的数据类型并且也有很多的命令。作为一个简单的演示,就使用INCR
和INCRBY
命令来进行一个简单的计数,-这个可以用于页面浏览量、投票数量、点赞数量等等。
>>> r.incr('p1')
1
>>> r.incr('p1')
2
>>> r.incrby('p2', 5)
5
支持的完整命令清单,可以看这里。