Tag: redis

Redis使用的底层数据结构是什么?

我试图在一个确定的列表中回答两个问题: Redis使用的底层数据结构是什么? 每种types的主要优点/缺点/用例是什么? 所以,我读过Redis列表实际上是用链表实现的。 但对于其他types,我无法挖掘任何信息。 另外,如果有人偶然发现了这个问题,而且没有对修改或访问不同数据结构的优缺点进行高层次的总结,那么他们也会有一个完整的清单, 以便最好地使用特定的types来引用。 具体来说,我正在寻找概述所有types:string,列表,集,zset和哈希。 哦,到目前为止,我已经看过这些文章: http://redis.io/topics/data-types http://redis.io/topics/data-types-intro http://redis.io/topics/faq

Redis命令获取所有可用的密钥?

是否有一个Redis命令来获取数据库中的所有密钥? 我看到一些python-redis库提取它们。 但是想知道是否可以从redis客户端。

如何自动删除使用Redis匹配模式的密钥

在我的Redis DB中,我有一些prefix:<numeric_id>散列。 有时候我想把它们全部清理干净。 我如何做到这一点,而不使用一些分布式locking机制?

什么时候Redis? 什么时候到MongoDB?

我想要的不是Redis和MongoDB之间的比较。 我知道他们是不同的; 性能和API是完全不同的。 Redis非常快,但API非常“primefaces”。 MongoDB会吃更多的资源,但是这个API非常容易使用,而且我非常满意。 他们都很棒,我想尽可能地使用Redis进行部署,但是很难编写代码。 我想尽可能地在开发中使用MongoDB,但是它需要一个昂贵的机器。 那么你怎么看待这两者的使用呢? 什么时候选Redis? 何时selectMongoDB?

如何删除Redis中的所有内容?

我想删除所有的密钥。 我希望一切都消失了,给我一个空白的数据库。 有没有办法在Redis客户端做到这一点?

Memcached与Redis?

我们正在使用一个Ruby Web应用程序与Redis服务器进行caching。 有没有点testingMemcached呢? 什么会给我们更好的performance? Redis和Memcached之间有什么优点或缺点? 要考虑的要点: 读/写速度。 内存使用情况。 磁盘I / O转储。 缩放。

Redis + ActionController ::活线程不会死亡

背景:我们已经在我们现有的一个Rails应用程序中构build了一个聊天function。 我们使用新的ActionController :: Live模块并运行Puma(在生产中使用Nginx),并通过Redis订阅消息。 我们使用EventSource客户端来asynchronousbuild立连接。 问题摘要:连接终止时,线程永远不会死亡。 例如,如果用户离开,closures浏览器,甚至到应用程序中的不同页面,则会生成一个新线程(如预期的那样),但是旧线程继续存在。 我现在看到的问题是,当发生这些情况时,服务器无法知道浏览器端的连接是否终止,直到试图写入这个断开的stream,而浏览器永远不会发生已经离开原来的页面。 这个问题似乎被logging在github上 ,并且在StackOverflow上也有类似的问题(相当好的问题)和这里(关于获取活动线程的数量) 。 基于这些post,我能够想出的唯一解决scheme是实现一种线程/连接扑克。 试图写入一个断开的连接会生成一个IOError ,我可以捕获并正确closures连接,从而使线程死亡。 这是该解决scheme的控制器代码: def events response.headers["Content-Type"] = "text/event-stream" stream_error = false; # used by flusher thread to determine when to stop redis = Redis.new # Subscribe to our events redis.subscribe("message.create", "message.user_list_update") do |on| on.message do |event, data| # when message is received, write […]

MISCONF Redis被configuration为保存RDB快照

在写入Redis( SET foo bar )期间,出现以下错误: MISCONF Redisconfiguration为保存RDB快照,但目前不能保留在磁盘上。 可能会修改数据集的命令被禁用。 请检查Redis日志以获取有关错误的详细信息。 基本上我明白,问题是Redis不能保存在磁盘上的数据,但不知道如何摆脱这个问题。 另外下面的问题也有同样的问题,很久以前就放弃了,没有答案,很可能没有解决问题的尝试。

如何在socket.io中重用redis连接?

这里是我的代码使用socket.io作为WebSocket和后端pub /子redis。 var io = io.listen(server), buffer = []; var redis = require("redis"); var subscribe = redis.createClient(); **<— open new connection overhead** io.on('connection', function(client) { console.log(client.request.headers.cookie); subscribe.get("..", function (err, replies) { }); subscribe.on("message",function(channel,message) { var msg = { message: [client.sessionId, message] }; buffer.push(msg); if (buffer.length > 15) buffer.shift(); client.send(msg); }); client.on('message', function(message){ }); client.on('disconnect', function(){ […]

如何使用redis的PUBLISH / SUBSCRIBE和nodejs在数据值改变时通知客户端?

我正在用NodeJS和Redis编写一个事件驱动的发布/订阅应用程序。 我需要一个如何在Redis中的数据值发生变化时通知Web客户端的示例。