03:57:01 GMT How can a new programmer in C could contribute to Redis? How could one start contributing to Redis? 04:48:43 GMT programo: go through the issues 08:16:22 GMT hi 08:17:28 GMT we're maxing out a single redis instance (being CPU-bound) on a single machine that hosts our entire workload. we're considering our options: sharding they keyspace across multiple redis instances (by doing the sharding in the clients), or sharding via redis cluster. what would you recommend? 08:58:56 GMT colo-work: I'm for Redis Cluster, it's not perfect but far better than home made solutions or other alternatives IMHO 08:59:55 GMT antirez, I see, thanks :) afaict, Redis cluster needs explicit client support, right? 09:00:20 GMT antirez: is there any plans to make redis cluster auto discover and auto balance etc? 09:00:28 GMT colo-work: yes 09:11:06 GMT antirez: by te way what was the design decision not having any redis instance forwarding the request to the right node and returning the answer instead of having to let the client do this ? Simplicity ? Number of waiting connections ? 09:11:08 GMT colo-work: yep that's a problem if you use a language with poor support, best thing is to spend some day testing for your use case 09:11:47 GMT ahfeel: auto discovery not sure what means, since the cluster pretty much auto discovers everything already. Auto balance, there is the "redis-trib rebalance" command introduced a few months ago, but there are plans to do more than that. 09:12:10 GMT antirez, that's what we're planning to do. thanks (to you and all contributors) for creating Redis, btw :) it truly is an awesome piece of software. 09:12:12 GMT ahfeel: decision is that it's better to make the client a bit more complex and save an hop (latency) in the case of a latency sensitive service like Redis 09:12:24 GMT colo-work: thanks for using it 09:13:25 GMT antirez: well by auto discovery I mean having the system quite fully automatic like an elasticsearch would do, you just launch instances in cluster mode with a given cluster name, and they link to each other automatically 09:13:57 GMT antirez: usecase would be adding / removing redis nodes on the fly 09:14:31 GMT antirez: because from what I understood the current cluster is not really designed to change the cluster topology easily no ? 09:14:31 GMT ahfeel: that's supported (but of course you need to move data to the node after adding it to the cluster). You can run a new node, link it to the cluster, and move some data. 09:14:45 GMT ahfeel: no, the contrary exactly, it's everywhere in the doc 09:14:54 GMT ahfeel: you may want to read the cluster tutorial 09:15:41 GMT antirez: oh ok, sorry about that then :) I'll rtfm and come back later :P 09:17:50 GMT antirez: also, just saw your tweets, what are main reasons for ppl moving away from docker w/ redis ? 09:19:24 GMT Hi; one sanity check, please. I want to create a (rather cinematic, "Person of Interest" style) frontend to monitor activities in a distributed system. So I thought that every process should create data that's needed for visualization and write it into the values of a hashmap, and also the timestamps of updates into a second hashmap. Then, on the client, I'd have a Redis instance that's slaved to the master that everybody is writing to. Thus, if the 09:19:24 GMT bandwidth gets too tight for live updates, I'll still always get the latest updates. Is that correct? 09:31:07 GMT ...or is that simply not how slaving works? 09:39:13 GMT ahfeel: no idea... never touched Docker with a stick so far :-) Not sure about the real merits. 09:39:42 GMT <*> antirez is here all day but unfortunately can't reply to help questions too much, sorry, back to modules interface hacking. LAter 09:49:09 GMT yoav_s: so Jemalloc's response was that actually we should see less fragmentation with the new version. 10:55:53 GMT heho 11:06:05 GMT re 12:05:09 GMT has anyone gotten anywhere on a redis module that supports blocking commands 12:07:27 GMT "Blocking commands"? 12:10:36 GMT similar to the subscribe command 12:12:24 GMT ? 12:12:39 GMT there are blocking pop commands 12:24:16 GMT I'm referring to the new module system though 12:25:08 GMT so when the module cmdfunc is called, the function some something similar to brpop 12:25:24 GMT or to put it another way, how would one implement brpop using the new module system 12:46:41 GMT forkfork: planned but working currently on supporting true module data types with RDB/AOF serialization and so forth. 12:46:54 GMT forkfork: will arrive soon or later... 12:47:22 GMT the problem with blocking operations in modules is, that it's kinda pointless if you can't also trap events 12:47:30 GMT because you usually want to unblock when something interesting happens 12:47:41 GMT so the work is more extensive than one may think at a first glance. 12:47:52 GMT right, understand 12:49:33 GMT the module I'm planning on doing is to add a transaction log style data type - meaning that a very large number of subscribers can do something like pub sub without a lot of redis memory growth 12:52:03 GMT subscribers keeping their position in a message queue rather than having redis maintain where each consumer is up to and duplicating messages per subscriber 12:52:52 GMT anyway, module system looking really good - I'll be very excited to see where you get to with it 13:18:57 GMT is there anythng i can do to improve redis performence? i can only get to 40 k ops/sec(no pipelining)? 13:25:15 GMT just started the windows versoni of redis on my machine and redis-benchmark is giving me 127K get ops/sec 13:32:59 GMT Inge- did you use pipelining? 13:35:48 GMT nope 13:35:56 GMT this is pure redis-benchmark 13:36:54 GMT Inge- i tested with redis-bench aswel 13:46:42 GMT what kind of cpu? 13:47:28 GMT Inge- E5410 @ 2.33GHz 13:48:37 GMT hm. mine is an i7-4790K and it is giving almost 2x the performance, adjusted for frquency 13:50:03 GMT Inge- but i did benchmarkt from another machine 13:50:07 GMT Inge- not on localhost 13:53:46 GMT Inge- when i run it on localhost it maxes on 35 k 14:50:47 GMT single core? 14:51:28 GMT hello, I was playing with a redis cluster and with redis-trib and I cannot make rebalance to work properly, it always ends with a error 14:52:12 GMT and leaves the cluster in a bad state, so I have to run redis-trib fix a couple of times to get everything in order again 14:54:20 GMT here it is what I'm doing http://pastebin.com/623m2ass 14:54:30 GMT any idea? 15:23:55 GMT mmh actually it fails even with a manual reshard :/ 15:24:07 GMT any idea on how to debug it? 16:02:55 GMT Is disque repository similar to amazon sqs? 17:55:20 GMT is there a way to expose a redis interface to an android phone directly? 17:55:29 GMT pub / sub is what i am looking for 17:56:22 GMT you can expose redis publically, of course 17:56:42 GMT whether it's a good idea or not is another question 17:57:35 GMT minus: I have a local network 17:57:48 GMT minus: so my phone needs to access redis on the ubuntu server 17:57:57 GMT minus: how do i access it from android's java interface? 17:58:55 GMT edit the redis config to bind to all interfaces, allow it in the firewall, connect to it via the machine's ip 17:59:31 GMT so use java's interface for the client ? Is it tested on android? 18:00:22 GMT no clue. i'd assume it to work if the app has internet permissions 18:00:42 GMT hope someone here who uses the java client knows? 18:01:45 GMT Is disque repository similar to amazon sqs? 18:03:06 GMT minus: most redis clients dont work on android 18:03:52 GMT they should work just fine if the app has the right permission 18:04:38 GMT Someone reported none of them work on android - stack overflow 20:42:40 GMT Inge- how you mean single core? 20:43:04 GMT Inge- the machine has 4 cores. but as far as i know redis is single threated so it cannot handle more cores 20:45:48 GMT true. but if it had a single core, that could explain slower perf when running redis-benchmark on the same machine 20:46:23 GMT otherwise I would expect better performance when running locally 21:21:07 GMT forkfork: I think I may use your idea as an example module! To show new in module data types I'm implementing. 21:21:26 GMT oops... she/he is no longer here. 21:21:44 GMT anyway going to bed, good night 21:52:59 GMT I work with a lot of relational databases.... want to do something with Redis. And I'm pretty sure I have the basic outline; just need to have someone verify that I'm on the right path. End goal is to be able to generate data like this: https://gist.github.com/mustmodify/d22cbb30d4766b738439af6f8d36b85d ... but we don't store (in this case) BMI. We store height and weight. And weight may be in kg or lbs. And sometimes we don't have that data. So there's l 21:53:29 GMT Things I don't know: Do I want to update the document the next night? Or dump it and redo everything? 21:55:14 GMT What data type do I want to use? Do I want to store the JSON? Or generate the json based on native Redis data types? 22:03:26 GMT Looking at the documentation, one viable option is to use a list. So for BMI, I might have a list bmi_values with JSON string values. Pros: can grab the entire list quickly. Can add to the list easily. Cons: can't easily find a single value (which I would only want if I was going to update the list). So this would mean I would regenerate the list every night rather than updating visits for whom values have changed... unless I keep a separate list of list 23:03:40 GMT mustmodify: another option is to use one key per data point and make it a hash. pro: you can easily access the data points individually and modify parts. con: overhead. and you need to know which keys you want to use when accessing. if you wanted to aggregate a bunch of them you could do that in lua in redis 23:04:04 GMT it all boils down to the access pattern, as usual