共享redis实现双赢协作(两个项目共用redis)
共享redis是一种无缝共享、模块可配置的数据库管理系统,最早由用户社区创建。它支持多个客户端之间进行统一的内存交换,用于分布式存储结构的存取,以及弹性的多机部署和NUMA的细粒度数据交换。
在某些场景下,使用共享redis是双赢的协作方式。例如,在大数据应用场景下,将无限海量的数据存储到不同机器上,每台机器上都有一个redis实例,需要跨越机器数据交换,可以将这些实例通过共享redis相互链接。
共享redis也可用作分布式存储结构的缓存,例如缓存常规api接口的数据,减少对数据库的查询量,提高系统的查询效率。此外,还可以配合其他分布式存储技术,如RabbitMQ、Hadoop、Spark等,使得分布式部署系统具有更丰富的功能。
下面以简单 demo 我们来说明怎样使用 redis 实现双赢协作,以 NodeJS 为例。创建一个 redis client,并设置客户端和redis服务端之间通信的密钥:
“`javascript
var redisClient = redis.createClient();
// 设置密钥
redisClient.set(‘secret’, ‘some secret value’);
接下来,安装一个 redis 认证插件,以验证另一个前置系统的操作人员的客户端的合法性:
```javascript//安装 redis auth plugin
var redisAuth = require('redis-auth');redisAuth(redisClient);
//校验客户端权限client.auth('some secret value');
实现redis客户端之间非阻塞和快速循环查询,构建一个双赢协作场景:
“`javascript
redisClient.on(‘message’, (channel, message) => {
// do something with channel and message
console.log(‘incoming message:’, message, channel);
});
//订阅
redisClient.subscribe(‘someserver’);
//发布
redisClient.publish(‘someserver’, ‘hello world’);
通过以上的三步,可以迅速搭建一个共享redis的双赢协作环境,可以使两个前置系统之间实现安全又快速的数据安全传输,从而达到双赢的协作效果。