Tag: redis

我如何使用yii2和redis来订阅?

我想在yii2控制器中使用一个方法来订阅频道,以便我可以接收实时更新作为订阅客户端。 我正在使用redis pub / sub。 public function actionSubscribe(){ Yii::$app->redis->executeCommand('SUBSCRIBE', ['notification'], function($redis, $channel, $message){ print('I just did it!!!!!!'); }); return true; } 我也使用nodeJs和以下是我的serverside nodeJs代码。 请问我做错了什么? 我从代码中提取拒绝工作的这一部分。 socket.on("message", function(channel, message) { console.log("New message: " + message + ". In channel: " + channel); socket.emit(channel, message); }); 以下是完整的代码 var app = require('express')(); var server = require('http').Server(app); var io […]

了解如何通过Node.js和Server Sent Events使用Redis

我的项目使用Nodejs作为代理服务器与外部API进行通信。 API通过Redis发送产品更新(pub / sub); 代理服务器处理消息并通过SSE(服务器发送事件)将其发送给客户端。 这是我第一次使用Redis和SSE,在网上寻找教程似乎很容易实现,我做到了。 在客户端,我刚刚创build了一个EventSource ,一旦我收到更新,我会用它做一些事情: // Client Side var source = new EventSource('/redis'); // /redis is path to proxy server source.addEventListener('items', handleItemsCallback, false); source.addEventListener('users', handleUsersCallback, false); source.addEventListener('customers', handleCustomersCallback, false); // Function sample… function handleItemsCallback (msg) { // Do something with msg… } 在代理服务器中,我创build了一个路由到/redis的控制器来处理Redis消息: exports.redisUpdates = function (req, res) { // Redis Authentication […]

Node.js,wordpress,redis

我需要从节点服务器的Redis中获取数据并将其发送到Wordpress布局。 我尝试了以下,但data似乎并没有被发送。 var express = require('express'); var app = express(); var redis = require('redis'); var client = redis.createClient(); //creates a new client client.on('connect', function () { console.log('connected'); }); data = []; client.set(['first', 'Oleh']); client.set(['second', 'Ivan']); client.set(['thirt', 'Andriy']); client.set(['fourth', 'Olena']); client.set(['fifth', 'Kristy']); client.set(['sixth', 'Irina']); client.get('first', function (err, reply) { console.log(reply); data.push(reply); }); client.get('second', function (err, reply) […]

请求cookie不按预期方式返回快速会话数据

我正在尝试构build一个基本的loginfunction,并testing它是否会创build一个稍后可以使用的会话。 我正在使用express-session和redis来保存会话数据。 这是我的设置: app.use(bodyParser.json()) app.use(bodyParser.urlencoded({extended: true})) app.use(express.static(path.join(__dirname, 'client/build'))) app.use(cookieParser(process.env.COOKIE_SECRET)) app.use(session({ store: new redisStore({ host: '127.0.0.1', port: 6379 }), secret: process.env.SESSION_SECRET, cookie: {maxAge: 1800}, name: 'appName', resave: false, saveUninitialized: false })) app.use('/', routes) 然后我的login路线: router.post('/api/login', (req, res) => { req.session.userId = req.body.id req.session.email = req.body.email //do I need to send out a cookie with the session […]

值得使用Redis而不是将数据存储在运行时只需要的对象中?

我正在创build一个派对系统, 使用套接字,人们可以发出accept, decline, invite, kick, changeLeader事件为党。 我需要一些方法来跟踪用户,所以我创build了一个包含所有相关信息的对象,例如 let partyManager = {}; partyManager[partyUUID] = { creator: username, creatorSID: g04wn0gn9w490g, // socket id members: [], invited: [] } 但是我想也许它很难在程序本身存储这些信息的程序上,也许一个数据库更适合于这个,但是我想要一些快速和诚实的,只是真的想尝试Redis .. 所以我开始研究我的商店/架构的redis存储信息我想出了类似的东西 hmset party:uuid:owner "creator" "username" "creatorSID" "socket id" sadd party:uuid:members "user1" "user2" sadd party:uuid:invited "user3" 这给了我一个散列,其中包含了派对所有者的信息,以及与当前成员相关的两组信息,以及具有未决邀请的用户(所以人们不能参加他们没有被邀请的派对) 但是后来我记得Redis存储在内存中,存储在一个对象中也会存储在内存中,不是吗? 我主要想知道,如果使用Redis来实现这一点,比将对象存储在一个对象中更有效/更好。

雷迪斯哨兵设置了春季引导

我有1个主站和2个从站上的redis,每个服务器上的端口26379上都有一个标识进程 我想知道如何configuration一个标记为主,以添加在application.property文件中的以下。 spring.redis.sentinel.master= spring.redis.sentinel.nodes= 我有redis服务器2.8.19和弹簧引导1.3.4,spring-data-redis 1.6.4jar子

泊坞窗应用程序和数据库在不同的容器

我有一个节点应用程序运行在一个docker集装箱,另一个是mongo数据库,第三个是redis数据库。 在开发中,我想要使用这三个容器(不污染我的系统与数据库安装),但在生产中,我想在本地安装数据库和泊坞窗应用程序。 该应用程序假定数据库正在本地主机上运行。 我知道我可以转发端口从容器到主机,但我可以转发容器之间的端口,使应用程序可以访问数据库? 端口转发不同容器上的相同端口会造成冲突。 我也知道容器将在相同的桥接networking,并使用“curl”命令,我发现他们已经连接,我可以访问他们使用他们的相对IP地址。 但是,我希望能够在不改变代码中的“localhost”规范的情况下使这个项目工作。 有没有办法转发这些端口? 也许在我的应用程序的dockerfile中使用iptables? 我希望我的应用程序的容器能够使用“localhost:27017”访问mongoDB,例如,即使它们在不同的容器中。 我正在使用Docker for Mac(V 1.13.1)。 在生产中,我们将在Ubuntu服务器上使用Docker。 我有点小菜。 感谢您的帮助。

无法从Docker容器内部连接到Redis群集

我有一个Node应用程序使用这个ioredis JavaScript客户端库。 我的问题是,我无法将这个也dockerized的应用程序连接到我的Redis群集(在端口7000到7005)及其容器。 这是我的设置和结果: 我克隆这个Docker-redis-cluster回购,并按照说明从Dockerfile构build图像。 $ docker build -t gsccheng/redis-cluster . 然而在build立之前,我唯一的改变是设置我自己的版本,我已经改变了 ARG redis_version=3.2.1 按照我的指示运行 docker run -i -t -p 7000:7000 -p 7001:7001 -p 7002:7002 -p 7003:7003 -p 7004:7004 -p 7005:7005 -p 7006:7006 -p 7007:7007 gsccheng/redis-cluster 很远很远 除了以下几个警告外: WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower […]

使用node-redis将AWS redis连接到节点

我正在使用node-redis,并且很难连接到外部redis实例。 我试着用redis-cli,它工作。 但是,与节点,我无法弄清楚如何正确给url和端口。 随着Redis-cli- redis-cli -h mydomain.something.something.cache.amazonaws.com -p 6379 但是用nodejs 下面没有工作 var client = redis.createClient('redis://mydomain.something.something.cache.amazonaws.com:6379'), 也不 var client = redis.createClient({host:'redis://mydomain.something.something.cache.amazonaws.com', port: 6379}); 我如何configuration它。 请帮忙。

Socket io Nodejs-当用户打开多个选项卡时进行pipe理

我试图在我的应用程序中写一个聊天,我有一个问题,不知道如何pipe理它! 这里是senario:我们有许多用户是authenricated所以他们都有一个唯一的ID,我想实现像Facebook这样的聊天,所以每两个用户可以相互聊天。 为此,我有一个server.js文件的内容: var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); var redis = require('redis'); var users = []; server.listen(8890); io.on('connection', function (socket) { console.log("client connected"); var redisClient = redis. redisClient.subscribe('message'); redisClient.on("message", function(channel, data) { var data = JSON.parse(data); socket.to('user_'+data.user).emit(channel, data); }); // join a room socket.on('newUser',function (user, type){ socket.type = […]