Posted on December 1st, 2012 No comments
It seemed like a good idea at the time.
My Digital Audio Workstation, or DAW, was acting up. An aging Dell Dimension 4600, it was taking nearly 30 minutes to start up and giving a startup message about lacking a page file on a custom-tweaked dual-boot XP setup. I had set it up several years ago and installed so much crap over the years. I thought it was time to replace it.
The trouble was, had had been using this setup with 2 other computers, another PC and a Mac, using a pair of VGA-PS/2 KVM switches. The Dimension is a PS/2 based design, and my other computers could share my VGA/DBI displays. I had gotten so used to using two screens, that I almost can’t think straight without it now.
Well I finally gave in and sent the PC to my brother who happens to be a computer hardware whiz. I figured he could fix it, and I decided to upgrade it to a Dell Precision T1600 workstation. I got a great deal on one at the Dell Outlet. Since I had been using a collection of DVI to VGA adapters on the previous 3-computer 2-monitor configuration, I decided to also upgrade to a dual DVI KVM switch, thereby freeing up some desk space, cleaning up my studio, and giving me more room for my Native Instruments Maschine.
So, off I go on the internet to search out dual DVI KVM switches.
The first one I consider is a Belkin Soho on Amazon. I had pretty good luck with my old Belkin VGA-PS/2 KVM switch, and who doesn’t love Amazon, so I decided for $250 it was a pretty decent price and worth a shot. My workstations on are the ends of an L-Shaped desk, and I had to get 3 pairs of dual DVI KVM cables with it. Grand total: around $500.
Five days later, I get the Belkin Soho dual DVI KVM switch delivered. I open everything extremely carefully, because I wasn’t sure it was going to work, and I wanted to be able to send it back if it didn’t. I open the box, tear down my entire rig across 3 computers and hook everything up, including some new miscellaneous adapters.
Wouldn’t you know it? Right out of box the Belkin Soho felt so cheap ho hum. Fragile and weak plastic. I tried it every which way, and was able to get only 1 screen working on a single computer! None of the other ports were sensed properly. I have no idea if I got a defective unit or what, but that thing was a piece of junk and didn’t work at all. Undo everything, redo everything back the way it was, with VGA PS/2 KVM. Everything works fine again, except I’m out 4 hours.
Over the next few days, I worked with the Amazon seller to get an RMA number to send it back, I lose about $50 in shipping charges in the deal, and now two weeks later, I’m back where I was before.
So, off I go again on the internet to search out professional quality dual DVI KVM switches. I arrive at a site called (SEO fans should be proud) KVM-Switches-Online.com. They have a whole section of their site dedicated to dual-display and multi-display KVM switches. I look at a couple of Avocent models and a few Adder products.
I decide to send an email to sales to ask for some advice. A day later, I get a response with a recommendation. I decide to try a 4×2 dual DVI kvm switch (2SVDVI20BND1-001) from Avocent corporation. I later discovered that Avocent is now owned by Emerson, and the model I purchased seems to be either undergoing a transition, or in the process of being discontinued. Anyway, feeling pretty confident from their response and the knowledge of the salesman, John F, I thought I would give it a go, bought it and waited another few days. With 3 sets of 15-foot dual DVI USB KVM cables, this new order set me back close to $800. I figured for nearly twice the price of the Belkin Soho, it ought to be sweet.
And it was. I got it home and the following weekend, set up this new one. The Avocent is much higher quality and durable feeling than the Belkin. I was immediately thinking this was going to be it, and I could get back to writing music. Another 4 hours later, I have everything all torn down and tested again, and insanely enough, I think I got a defective Avocent! Both screens were detected from all 3 computers, but I only was able to get a few horizontal pixel lines on the second screen, while the rest of screen 2 was completely black!
“UGH! What a crock,” I complained. “Again?!”
Just because I got a defective Avocent KVM switch doesn’t mean you will, give them a try. They make nice stuff and their single-DVI KVMs look just as nice. But for me, having already spent a month an a half trying to solve this problem, I decided to return it a try a different one again. It was now becoming a little bit like deja vu. I tear everything back down, put everything back the way it was, check it all, re-package all the cables and KVM switch, and request another RMA number.
Finally I decided to contact KVM-Switches-Online. I get forwarded over to John F, who says he’ll either send me a replacement Avocent or help me choose an upgraded product.
John walks me through selecting an Adderview Pro Multiscreen, a unique product line that comes in Dual-DVI, Tri-DVI, and Quad-DV-USB-KVM switch versions. I have only two displays, so I ordered the dual (Quad pictured above). Adder switches are some of the best on the market, he said. Again I made sure to order 3 sets of dual 15-foot DVI-USB cables and used my RMA credit from the Avocent (now down around $600 after subtracting shipping the return back).
I wait another few days. Five to be exact.
When it finally arrives, I’m stoked. The Adderview Pro Multiscreen is really a nice KVM switch. It has a digital readout, not unlike the first digital alarm clock you might’ve had, multiple settings, and keyboard control. I get ready to install it and realize that although the packaging says “5-metre” the cables inside are clearly 3-foot (1m). Not long enough to reach my 3 PC.
Good lord. Still no luck with 1 of my 3 computers, at this point I’m getting kind of frustrated, but try to keep my cool and contact John again. See, now we start to get on a first name basis, because I had to convince them that I wasn’t insane and that, in fact, the Cables that shipped with the Adder KVM Switch were mis-labeled in the wrong packaging.
Another day or two goes by (I have a day job – this is for my hobby room’s PCs). I call John again and talk to Krissy, who manages customer orders and returns. She hands me off to John, who says he spoke with Adder, talked to the shipping manager, who called him back on his cell from the warehouse and indeed verified that I am not insane, that there was a packaging mistake, and to hang tight for 6 new 15-foot DVI USB KVM cables. Yes, dual DVI KVM for 3 PCs, six cables. They would offer me a discount of not having to pay shipping for the second shipment. I guess that’s something.
Alright, great. I wait another five days. It’s been two months now since I started this journey to find the perfect dual DVI KVM switch.
The new cables arrive, and they’re sweet! A few hours later, the third time now tearing down a 3-PC dual VGA PS/2 KVM and setting up a 3rd KVM switch, I can use my Mac and my Dell XPS perfectly now. But for some reason, the Precision T1600 is only working on one monitor.
I try port 4 on the KVM instead of port 3. Same thing. Minus another half hour.
I try to swap out the cables and verify it’s not that. Nope. I flip flop the cables, and see I get the other screen working, but not both. Minus another hour.
It’s still Saturday afternoon, so I figure I will dig into the issue on the Dell support chat and forums. Turns out, guess what! Duh! My VGA to DVI adapter won’t work…
“You can drive a VGA display from a DVI connector, but not the other way around,” The Dell support tech says. I was getting only the screen from the DisplayPort to DVI connector. So, off I go to Amazon to order a new Graphics Card that supports Dual DVI – the EVGA nVidia GeForce 620. It’s got exactly the ports I needed, and has 1GB of RAM. I figured that would be perfect.
Minus another $50 and two hours of research & shopping, followed by another two days of Amazon Prime shipping.
I get the card upstairs, installed it into the T1600 and still get one monitor to work. I can’t believe it, now. Using this card, only 1 display is recognized! I cannot for the life of me figure it out. I download the tech specs from the Dell Precision T1600 and the EVGA nvidia GeForce 620. There it is, in black and white, clear as crystal:
GeForce 620: This card requires 350w of power and 18amps on the 12-volt rail.
Hmmm. I start to become concerned that I don’t know a lot about PC power supplies.
Precision T1600: Power supply 265w.
Rats, that has to be it, I thought. Just to be sure, I fire up a chat support with Dell to confirm that upgrading the power supply won’t void the warranty or damage the PC. I’m told not to worry, just that Dell won’t cover the new Power Supply under their warranty and to keep the original one just in case. Surf for a few to find out how complicated buying a PC power supply can be. Doesn’t look too bad, thanks to this article on how to buy the right replacement PC power supply over at computershopper.com.
Now I’m tearing down my DAW again, to yank the power supply out and head back to the computer store in search of a new replacement higher-wattage power supply. Minus another hour.
I get back later with a 400w Antec 80+ Bronze power supply and install it. I reconnect the KVM and fire it up. Hmm, not looking good. I get VGA on one screen still.
I can’t get Windows 7 to even notice that there is a 2nd monitor attached. That seems odd to me, so I Google it. I find a post where a commenter replies that you have to go into the bios and enable multi-monitor support. Hmm. Really? Gosh, I’ve been spoiled by using a Mac for way too long. So I reboot and press F2 and the Dell screen. Strange thing is, I can’t seem to find anything related to multi-monitor support in the BIOS I am running.
I launch a Dell support chat in the other PC (I have some of the KVM ports working) to ask about that. I decide it would be easier to call and talk to someone.
Dell: Are you using any adapters?
Me: No, just DVI cables.
Dell: The Precision T1600 with your Service Tag says it has integrated graphics, 1 Display port, 1 VGA port, so you must have some adapters if you’re using it with DVI monitors.
Me: No, I am trying to install and use an nvidia GeForce 620 in PCI slot 4. The specs say it needed a larger power supply so I am also I bought one and I’m using that to rule out lack of power.
Dell: I see. Well, if you use the DisplayPort with a DVI adapter, and a VGA monitor it should work.
Me: I don’t have a VGA monitor.
Dell: Please hold while I look up a few things.
(Ten minutes go by)
Dell: Sir, I regret to inform you that the bios on your machine only supports dual screens via the Display Port and VGA adapters. Because that machine came with integrated graphics and not a Dell-approved PCI card for multi-screen technology from the factory, there’s no way for you to enable multi-monitor support in the Bios, I don’t think there’s any way I can solve your issue, and since you’re using a 3rd-party graphics card, we can’t support that, either.
Me: Wow. Unbelievable. Can I return this computer?
Dell: I don’t know. Dell Customer Care is open weekdays during normal business hours. Would you like their toll free number?
Me: Sure. (I write it down.)
Dell: Is there anything else I can help you with?
ARGH! I wanted to slap that guy! I know it wasn’t his fault and he was just following a script, but my God! I’m now 6 weeks down the road, several thousand dollars out of pocket and still don’t have a working solution to the Dual DVI USB KVM saga.
Now I’m faced with a dilemma. Do I try to return everything and start over? Pillage all the parts I have in this dell in the fabrication of a new home-built PC? Buy a new one and sell this one on eBay?
At the end of the day, building a DAW is a tricky pain in the neck, and making a production studio setup with 3 computers sharing one keyboard, mouse and two DVI monitors is even more complicated.
I know once I get the kinks ironed out, the AdderView Pro Multiscreen is going to do the trick, and I received very good customer service from KVM-Switches-Online.com — they were all helpful and polite and were clearly interested in getting my order and my setup done right!
Posted on December 1st, 2012 No comments
Whether your power supply is blown, or you want to add a new PCI card upgrade, you really ought to check out this fantastic write up on PC computer power supplies. Very informative.
Posted on August 28th, 2012 No comments
You know you love Google’s #1 product… their impressive Google web search. If you’re like me, you use it hundreds, if not thousands of times a day.
You can use Google Search Operators, also called Google Search Modifiers, and they even offer users a whole page of Google Search Tips., including tricks like searching for recipes, using the calculator functions, and lots more.
But as good as Google’s search box is, there’s always room for improvement. Here’s a list of new and improved Google Web Search features I’d like to see. If you agree with these great feature additions I’ve suggested below, or if I forgot any, leave me a comment! I know I’d use them for sure!
Top 10 Ways Google Can Improve Search
10. Starting with something boring and annoying, how about a Tax Forms search? The one at irs.gov is alright, but let’s face it, the government could use Google’s help. The Google search 1040 site:irs.gov year:2011 type:pdf should bring up the obvious result I am after. It doesn’t. Google could help me spend even less time on the IRS website than I do already, which would be a very good thing.
9. Music Search. There’s no way to search music available in iTunes, without launching iTunes. I love music, but the search capability of iTunes and other music programs is terrible. Let me flag a song or album for later, like a wish list, and remind that I liked it. Integrate with all the streaming services like Pandora, Slacker and such. Give me Search Operators like artist:justin+bieber or label:interscope or genre:thrash+metal. (That’s three different search examples.)
8. Melodic Search. Create a musical instrument interface with which to perform song searches. As a play-by-ear pianist, I can never remember the lyrics or the names of songs, but I can play the notes! Let me play notes on an on-screen keyboard, or with my attached Midi keyboard, and find music matching the musical notes I am playing. For example, if I play C . . G C . . G C G C E G –> Google should pull up Mozart Eine Kleine Nachtmusik. This is easily implemented with widely available MIDI data.
7. Advanced Video Search. To perform an Advanced Video Search on Youtube now is an exercise in aggravation. An advanced YouTube search that worked would be really cool. Give me all the fields as operators, too, like views:1M or maru type:video views:2M..5M by:views ord:desc. This should show me maru clips between 2M and 5M views ordered by views descending. This search actually returns an incredibly random assortment of useless junk.
6. Expert Search right from the Google.com home page. Upgrade the advanced search operators, giving power users like me the utmost flexibility. For any input field on the advanced search or advanced image search, create an Advanced Search Operator for it. For example, why can’t I find cat exact:lolz type:gif w:128 h:128? I clearly am after an exact search of funny cat gif icons. I should be able to easily guess the “colon operator” for any advanced search field, and why not show me what it is when I hover over it on the advanced image search form so I don’t have to go find an obscure help doc on a different website on performing an advanced Google search.
5. Create Search Templates — Let me save and share advanced search filters and advanced images search filters and use them for later. For example, it can take a few minutes to set up a good advanced images search. Why not let me store the following for easy retrieval… for example (site:a.com OR site:b.com OR site:c.com) (type:jpeg OR type:png) (size:2mp..4mp). Clearly I am looking for jpg or png images betwen 2mp and 4mp on 3 specific websites. As a designer, if I could save those search parameters and re-use them, I could easily load it up, add a keyword, and save hours every year.
4. How about a Movie Search? Just buy IMDB.com , Blockbuster.com and RottenTomatoes.com and combine them. You know you want to. Your current Movie Showtimes Search is very embryonic. Is it too much to expect that type:movie (actor:judd+nelson AND actor:molly+ringwold) could find The Breakfast Club and 16 Candles? Results: ho-hum.
3. You can’t have a movie search without a Celebrity Search. It amazes me that I cannot set up an RSS feed for daily updates of Zoë Saldana jpegs that are at least 1280 x 1024. I clearly want wallpaper. Why not let me do celeb:zoë+saldana type:jpg size:2mp..
2. You’re obviously working on a Travel Search, otherwise you wouldn’t have bought ITA Software and Frommer’s. Are you ever going to improve Google Flight Search? I bet some readers don’t even know that exists. I hate every minute of making travel plans online, and since the internet killed the travel agent, I’m forced to do this on my own now, forevermore. Hurry up and fix it already!
1. Social Search. This is a no-brainer. I can’t search anything on Twitter, Facebook, LinkedIn, or even Google+. The state of social search is so incredibly dismal, it’s going to require an entire blog post all on it’s own. In short, if I’m logged into all of my social networks, I should be able to search them all with ease. They all provide APIs, don’t they? Don’t you have, like, fifty zillion programmers? Surely with all the work that went into Google+ you had to think about how to make all of that content searchable. It seems like the moment I link to something or share it, the sooner I can never find it again!
Now I hinted at this in #7 above, but how cool would it be to search the web with SQL? Or at least, using some SQL-like operands? By now millions of people use SQL on a daily basis, and certainly your search algorithms could be easily adapted to understand things like by:relevance ord:desc. (ORDER BY relevance DESC) or BETWEEN 2011-12-31 AND 2012-06-30? This reminds me that you could make it a lot easier to combine mulitple boolean operators. Only one or two work at a time. Why not let me use AND, OR and Parentheses? ( this OR that ) AND (brick OR brack). So I guess you could call this a bonus eleventh way Google could improve it’s search features. Call it Nerd Search.
Okay, there now, Googlebot, fans of Google, and other casual readers. What do you think?
Posted on June 2nd, 2012 No comments
A few years back, I found the iPhone app Runmeter. It keeps getting better, too, and is still one of the best $5 I ever spent. Very cool app. When you finish a run, skate or walk, it sends you a j.mp short link to a Google map of your exercise with all the stats it captured via GPS.
As a web developer interested in link shortening services, I instantly signed up to use j.mp to shorten my links.
Even though around September of 2009 bit.ly encouraged their users to switch to j.mp to make their URLs even shorter, they have now appeared to have tabled the j.mp brand along with the excellent j.mp sidebar. This wouldn’t be a big deal if the new bit.ly services were the same or better, but they’re far from it. The new bit marker is annoying and takes five times longer to shorten a link, tries to integrate with sharing sites for you and lots of other annoyances.
So they deprecated the j.mp sidebar, which as of the time of this writing is still working, but you cannot find it anywhere on the web! So frustrating.
To combat this problem, here are some instructions below — just sign up for bit.ly if you don’t already have an account, and follow the steps below.
bit.lyj.mp sidebar bookmarklet
Drag this link to your browser’s bookmark toolbar
bit.lyj.mp sidebar manual creation method
1. Create a new blank bookmark in your bookmark toolbar folder and name it j.mp sidebar (or bit.ly sidebar if you prefer)
2. Paste in the following for the URL
Posted on May 16th, 2012 22 comments
If you have a need to compile Memcache or wget on Mac OS X Lion and are wondering why you are getting the error
no acceptable C compiler found in $PATH
on Mac OS X Lion, you’re not alone.
Thanks to this post, I was able to fix my problem. Here are the steps.
- Run App Store
- Search for Xcode – it’s a free install from Apple
- Wait for awhile. Took 30min to download for me on a 20mbps connection
- Authenticate and let Xcode install. Once Xcode is installed you may be thinking you’re done. You would be wrong!
- Launch Xcode and run the mobile toolkit update (you can’t skip it, deal with it)
- Go to Xcode Preferences or press ⌘, (Command-comma)
- Click the Downloads tab -> Components list as shown below
- On the last row of the available downloads are the Command Line tools. Install them.
You should be good to go after that!
Posted on May 15th, 2012 No comments
I told you in a recent rant on this blog that I bought myself a new MacBook Pro.
It truly is a glorious computer; perhaps the best laptop on the planet. It’s blazing fast, ultra quiet, and it’s built like a Sherman tank, but is as sexy as a Ferrari. With Unix under the hood, Apache, PHP and MySQL preinstalled, it’s a web developer’s dream machine.
I always look forward to setting up a new computer for the first time, but instead of starting from scratch as is my normal approach, this time, I decided to use Apple’s built-in Migration Assistant.
How to use Migration Assistant to transfer files from another Mac is the name of KB article HT4413 at Apple.com. If you’ve already created your account on your Mac for the first time, but want to migrate a profile (your user account, applications and files) from a different machine or Time Machine backup, using Migration Assistant is the way to go.
But if you already created your login on your new Mac, read carefully:
Important info not obvious on Apple’s KB article
Using Migration Assistant, your old files will be copied to a new, alternate, secondary profile on your new Mac. In other words, if you logged in as ghoffman on your old Mac, and you already created a fresh, new profile ghoffman on your new Mac, you can’t use Migration assistant to get old ghoffman copied into new ghoffman. You can use Migration Assistant to restore ghoffman (old) to ghoffman2 or ghoffmanNEW or any other alternate named profile, just not the one you probably want.
If you have not yet created your user account on your new computer, or if you are willing to format your Mac and restore it to factory default settings, there is a little-known startup configuration mode when you first boot Mac OS X. It’s called Setup Assistant.
The first time you start up a new Mac, on one of the very first screens, even before entering your name for creating your account, you have the option of using Setup Assistant, which may be better named First-run Migration Assistant.
Using Setup Assistant at first-run is by far the fastest way to get going on a new Mac. I was extremely impressed at how simple and complete it was. Just like Migration Assistant, you have a several options as far as the source and transfer method, including using your other computer (as a disk in target mode) or from a Time Machine backup. I chose to use my Time Machine backup over FireWire 800. Other transfer options include USB, Ethernet and Wi-fi.
I was able to restore my Mac OS X Snow Leopard account on a 250GB MacBook Pro 17″ (Aug 2008) onto a new i7 processor 750GB MacBook Pro 17″ running Lion, in about 2 hours. Over 200 GB of data were restored, including my login username and password, all my keychain files, every document, every application – even Adobe Creative Suite, Microsoft Office, iTunes, iPhoto – everything! Even my ~/Sites folder for web development, with all my local MySQL databases, were perfectly restored.
I’ve really got to hand it to you, Apple. Not only is this laptop amazing hardware, but your software is extremely good, too.
Now I just need a new iPhone. And an iPad.
Posted on May 14th, 2012 No comments
I just got a new MacBook Pro with Lion installed, and I love it. I used the Setup Assistant (very similar to Migration Assistant) to transfer my account from my old MacBook Pro to my new one. The process was wonderfully simple, seamless and successfully transferred 99.99% of my files, documents, applications and settings.
After running Software Update to check for the latest system and software updates, I am told I need to download the Epson Printer Driver software update… for a whopping 922 mb!
Seriously, Epson? Sure, I have a fast connection, but not everyone does yet. Forcing your users to download a gigabyte of software when we own at most, one or maybe two of your printers? Why must I keep drivers for every printer you ever made on my computer? That’s just insane.
Your printers are pretty decent but your programmers are seriously lazy.
Here’s another way we end up paying more for everything.
The more printers Epson makes, the more code they stuff into their bloated driver download. The more we download, the more our ISP’s incrementally charge us for bandwidth.
It’s a printer for gosh sakes. Didn’t printer drivers used to fit on a floppy?
Posted on February 25th, 2012 3 comments
Things I learned while attempting to build a custom WordPress plugin…
A) The documentation is far from clear.
B) There’s lots of ways of doing it
C) Many blog posts exist around the net with tutorials and examples, and many of them are outdated
D) Proper, logical coding practices and assumptions do not work.
E) You have to just mess with it until it works.
“The world is already flooded with blog posts about how great W3 Total Cache is and how terrific Super Cache is and how fantastic Bat Cache is. Surely one of these will work for me,” I think to myself.
But alas, I tested using each of these plugins on my site and none of them really did the trick. W3 Total Cache actually broke my theme completely and threw errors; Super Cache didn’t help much either. And Bat Cache was just complete rubbish. Discouraged, I decided to write my own plugin from scratch. So, off I go.
I’ll write a custom caching plugin that uses Memcache.
After a week of off-and-on development, I got my caching plugin working extremely well: What was up to 15 seconds is now sub 300ms! Same page, same WP Multi-site, one plugin with only about 300 lines of code. But it only works in a highly-controlled environment. I want to put it up on the WordPress site so others can use it, but before I can release it into the wild, I need to make sure it’s really polite about errors and easy to work with.
Specifically, I have these 3 simple goals to finish it up:
1) If you don’t have the Memcache extension installed when you try to activate the plugin, it needs to display a warning message about missing extension;
2) I want to use the standard h2 error message to display this error to the user; and
3) I want the plugin to remain deactivated if activation fails.
You would think the WordPress Codex, Plugin Resources and Plugin API Documentation would be chock full of great examples for Plugin developers, wouldn’t you? I did, too, but unfortunately this just isn’t the case.
I’ll give examples of A through E above, and hopefully explain how I was able to achieve the proper implementation points of 1, 2 and 3.
How do you handle WordPress Plugin Activation errors gracefully?
This post says to use the wp_die( ) function.
I tried that and it actually does prevent the plugin from getting activated.
This post suggests that you should just let the fatal error happen and display a slightly better error message in a status box. Terrible idea, IMO.
Better to use this. Render red error messages in h2′s like this post shows. I’m trying to combine these concepts into a single, elegant solution and having a real rough time of it.
I think the only way to do it is like HungryCoder says, you have to freaking ob_start and catch the error with output buffering…
Posted on February 18th, 2012 No comments
See, nobody’s perfect. Not even Facebook. (Ha! Far from it, right?)
I’m not able to post an update status at the moment. I thought I’d document it.
Not bad, though, Facebook IT team, I think you have, what, 99.9999% uptime?
Posted on February 4th, 2012 2 comments
Chances are you’ve heard of Memcache. Tons of websites use it to speed up page load times. I often say that Redis is like Memcache on steroids. You may not have heard of Redis, but if you’re using Memcache or APC, you should see how Redis could improve what you’re already doing. If you’re not using Memcache or APC yet, don’t bother – I urge you to take a look at Redis for a bunch of reasons.
First, Memcache is a key-value store only. You set a string value under a string key, and that’s it. With Redis, on the other hand, you have the luxury of several different types of data storage, including keys and values, but Redis also supports hashes, lists, sets and sorted sets.
An example to help explain why this is such a huge improvement. Say you have a big array of data, such as the kind that can come back from a web service request, like a parsed XML file or JSON packet. With Memcache, to store this in memory you have to serialize the data, often base64 encode the data, and then store it on the way in, and then to get a portion of the data back out again, you have to get the whole string, base64 decode it, deserialize it and then you can read from it. These extra steps needlessly chew up compute cycles.
With the same data object stored in a Redis Hash, for example, you can have instant access to the data stored in any key of the hash, you don’t have to grab the whole thing, deserialize it and all that mess. Just a single line of code, and boom, there’s your data. Much more elegant.
Another key reason Redis is superior to Memcache is that when you ask Memcache to store something, it’s in memory and that’s it. If your server goes down and you have to reboot, you have to repopulate your Memcache data over again. If your app has gotten huge, and your cache is huge, this can not only take awhile but puts a huge strain on your database server during this so-called “cache warmup” period. Unlike Memcache, Redis actually stores a copy of its data to a file on disk in the background, so if you stop and start your Redis server, it reloads everything automatically. It does this mind-blowingly fast, too, like millions of keys in seconds.
Finally, Redis supports master-slave configurations that you can use to build high-availability systems more easily. In the upcoming release (everyone is very eager for) Redis Cluster will support sharding out of the box!So, now that you want to dig in and start learning Redis, here are my…
Top 10 Redis Resources Online
NotesYou may be wondering about NoSQL and where Redis fits into this discussion. When people bring up NoSQL, I tend to think of MongoDB. Unlike Memcached and Redis, MongoDB is a general purpose document/object (think JSON) store that (strangely enough) allows you to use some SQL-like commands to retrieve subsets of your data. I think of Redis as a data structure server. You don’t use SQL to talk to Redis, so I guess it could be considered along with other NoSQL solutions. You can compare Redis to MongoDB by going to try.mongodb.org/
- Redis documentation: redis.io/commands
- Try Redis Online: try.redis-db.com
- Redis-DB Google Group List Archives: groups.google.com/group/redis-db
- Antirez (Redis developer Salvatore Sanfilippo’s) blog: antirez.com
- Recent blog posts about Redis: RSS Feed
- Q&A: stackoverflow.com/questions/tagged/redis
- The Little Redis Book – Just released openmymind.net/2012/1/23/The-Little-Redis-Book
- Slides from Redis Tutorial simonwillison.net/static/2010/redis-tutorial
- A Collection of Redis Use Cases www.paperplanes.de/2010/2/16/a_collection_of_redis_use_cases
- My GitHub Page. Chock full of Redis-related project forks. github.com/phpguru
- Bonus: Here’s a slideshow for a Redis 101 talk I gave if you’re interested.