An Introduction to Redis

Originally posted by Algonquin Studios’ Developer Colin Higgins on his blog.

Redis is an open-source, networked, in-memory, key-value data store with optional durability. It is written in ANSI C. The development of Redis is sponsored by VMware. It’s often referred to as a data structure server, as keys can contain strings, hashes, lists, sets and sorted sets.

Simply put, the Redis data model is a dictionary where keys are mapped to values. One of the key advantages of Redis is that it is not limited to storing strings.The session storage native to .NET stores complex objects as well, however, the ability to join between is limited to what you code out, or what is available in ADO.NET/LINQ.

Also, the speed gained from having your session storage in memory could be invaluable. This is an alternative to hitting your relational database in order to persist user specific data between pages.

Redis supports high level atomic server side operations like intersection, union, and difference between sets and sorting of lists, sets and sorted sets.

Persistence

Redis, in typical setups, holds it’s dataset in RAM. This raises some eyebrows for developers concerned about losing data. Persistence is reached in a few different ways.

One method is snapshotting. At determined time intervals, the dataset is asynchronously transferred from memory to disk. The safest alternative is to use journaling. Journaling uses an append-only file that is written to as operations that modify the dataset in memory are processed. In order to avoid indefinite growth, Redis is able to rewrite the append-only file.

Redundancy

Redis supports master-slave replication. Redis slaves are writeable, which allows for inconsistencies between instances. Replication is useful for read (not write) scalability or data redundancy.

Performance

The nature of Redis being in-memory means that it is very, very fast. It is considered a low function, high speed database system. Naturally, the more complexity you add to any system, the more it will slow down. Redis has pub/sub, and transactions. To my knowledge, you’ll have to be okay with optimistic locking. The performance jumps experienced are mainly due to Redis not needing to write immediately to disk every time a change is made.

In conclusion… Redis can very easily be compared to memcached. People preach it’s gospel as just an inter-process communication mechanism. It is also a good caching layer. I would not recommend it as a NoSQL replacement for an RDBMS, but it would work fantastically alongside one. Also, I’ve been hearing a decent bit about Kyoto… I hear it’s faster? I’ll have to update in the future.

Related

Confusion in Recent Google Updates

This post originally appeared on my blog.

Google pushed out some updates recently which have had SEO experts and spammers, as well as the average web developer or content author, a bit confused. It seems that some sites have been losing traffic and attributing the change to the wrong update. It also seems that some of this has percolated up to my clients in the form of fear-mongering and misinformation, so I’ll try to provide a quick overview of what has happened.

Exact Match Domains (EMD)

For years identifying a keyword-stuffed domain name for your product or service was considered the coup de grace of SEO. Frankly, on Google, this was true. For instance if my company, Algonquin Studios, wanted to rank highly for the search phrases web design buffalo or buffalo web design then I might register the domains WebDesignBuffalo.com and BuffaloWebDesign.com. I could even register nearby cities, like RochesterWebDesign.com, TorontoWebDesign.com, ClevelandWebDesign.com, and so on, with the intent to drive traffic to my Buffalo-based business.

Google has finally taken steps to prevent that decidedly spammy user-unfriendly practice. With the EMD update, Google will look at the domain name and compare the rest of the site. If the site is a spammy, keyword-stuffing, redirection mess, then it will probably be penalized. If the domain name matches my company name, product or service and (for this example) is located in the area specified by the domain, then it will probably not experience any change.

In all, Google expects this will affect 0.6% of English-US queries.

Panda/Penguin

While spammers panicked about this change, some not spammy sites noticed a change at about the same time. This may have been due to Panda and Penguin updates that rolled out around the same time and have been rolling out all along.

Considering the Panda update was affecting 2.4% of English search queries, that’s already a factor of four more of an impact than the EMD update. Considering that Google pushes out updates all the time, tracing one single update to any change in your Google result position is going to be tough.

A couple tweets from Matt Cutts, head of the web spam team at Google, help cut to the source instead of relying on SEO-middle-men to misrepresent the feedback:

This one details the number of algorithm changes that regularly happen:

The trick is trying to recognize what on your site might have been read as spam and adjust it to be user-friendly, not to try to tweak your site to beat an ever-changing algorithm.

Disavowing Links

This one ranks as confusion for a web developer like me.

The only feature Google has added that I think takes potential fun away from blogs (or any site that allows commenting) is the tool to disavow links. This tool allows a site owner to essentially tell Google not to count links pointing at it when figuring PageRank.

One reason I don’t like it is that it allows sites that have engaged in black-hat SEO tactics and have ultimately been penalized by Google to undo the now-negative effects of paid links, link exchanges and other link schemes that violate Google’s terms. While this is good for sites that have been taken to the cleaners by SEO scammers, I still don’t like how easily they could be excused.

Another reason I don’t like it is that all those liars, cheaters, scammers, spammers, thieves and crooks who have spam-posted to my blog can go and disassociate those now-negative links to their sites. Sadly, associating their sites with filth of the lowest order by careful keyword linking (as I have done at the start of this paragaph) is the only ammo I have with which to take pot-shots at their spam juggernauts.

This new tool means you might not see spammers harassing you to remove their own spammy comments from your blogs. Which is unfortunate, because ignoring them seems only fair.

Just this morning Matt Cutts tweeted a link to a Q&A to answer some questions about the tool:

The post includes some answers intended to address concerns like mine.

Meta Keywords, Redux

As I have said again and again, the use of meta keywords is pointless in all search engines, but especially in Google. This doesn’t stop SEO snake-oil salesmen from misrepresenting a recent Google update to their prospects.

Last month Google announced its news keywords meta tag, which does not follow the same syntax that traditional (and ignored) keyword meta tags follow. An example of the new syntax:

meta name="news_keywords" content="World Cup, Brazil 2014, Spain vs Netherlands"

From the announcement, you can see this is clearly targeted at news outlets and publishers that are picked up by Google News (your blog about cats or your drunk driving lawyer web site won’t benefit):

The goal is simple: empower news writers to express their stories freely while helping Google News to properly understand and classify that content so that it’s discoverable by our wide audience of users.

For further proof, the documentation for this feature is in the Google News publishers help section.

In short, unless your site is a valid news site, don’t get talked into using this feature and fire the SEO team that tries to sell you on it.

Related

Safeguarding Your Data

Many of us deal with sensitive information on a daily basis. Whether that’s financial accounts, healthcare records, social security numbers, or trade secrets (to name a few), it’s imperative that we take precautions to safeguard this data as best we can. I’m going to share a few free or low-cost options that can better accomplish this.

1. Secure Your Smartphone

A lot of damage could be done if your phone falls into the wrong hands. I’d guess that a majority of us have our e-mail accounts configured on our phones in addition to a decent list of contacts. It would be easy enough for someone to impersonate you by sending a text message or e-mail, potentially gaining access to sensitive information. Minimally, you should make sure your phone is protected with a PIN or password. This should buy you enough time to change passwords and/or let people know that your phone has been lost. A better option would be to enable a Remote Wipe utility on your phone, that allows you to factory reset your phone and wipe away any important data. This article offers a good smartphone protection synopsis.

2. Encrypt Your Hard Drive 

If you use a laptop for work purposes, I strongly suggest that you encrypt your hard drive. It’s a lot simpler to accomplish than it sounds and it provides a great peace of mind for you, your company, and, potentially, your customers. Why take the chance that your sensitive data could be compromised so easily? The EFF outlines a few different encryption options.

 3. Don’t Overreact to E-mails

Phishers and scammers love to prey on your emotions. A popular ploy is to send an e-mail claiming that there has been a security breach and that you need to verify your current credentials and then change your current password. Often, this e-mail will include a link to a fake site that asks for authentication. If you’re not careful and react too quickly to a scam such as this, your entire network could be compromised. It’s best to take a second and ask around first and/or call your security personnel directly and verify the e-mail.

 4. Use a Password Manager

Ahh, password security. You know the drill. Create a secure password, usually with a mix of symbols, upper and lower case letters, and numbers. Oh, and don’t re-use passwords. Oh, and change your password for every account every X days. Make it easy on yourself, and ensure that you’re taking proper precautions to safeguard all of your accounts in the event that one of them gets compromised. An easy way to manage this is to install a password management utility. Most of them work the same way; create one ultra-secure passphrase that opens the utility, then copy and paste the specific password for the account you’re accessing. Once again, this sounds more complicated than it is in practice.

5. Enable 2-Factor Authentication for Gmail

If you have a Gmail account that you use for e-mail, consider enabling 2-factor authentication. It’s a free option that Google provides that allows you to add an additional layer of security to your account. In addition to username and password, you’ll be sent an additional token code (by voice or text message) that you’ll have to enter to verify your identity. If you’d prefer to not enter a token every time you authenticate, there’s an option to designate trusted computers instead. Google outlines their 2-factor authentication options on their support site.

The “Doctor Who” Effect

As a sales consultant, I always think it’s great when something I was told during my training process comes up in a real world selling experience. I often only feel as if I’ve truly absorbed the conceptual ideas behind selling when I experience them in a hands-on way. I was recently reminded, during a successful sales call, about the importance of the chemistry between client and prospective vendor and it hammered home the idea that “You’re selling yourself just as much as you’re selling the service you offer.”

Most successful businesses spend a huge amount of time and resources on perfecting things like sales pitches, marketing materials, and product or service offerings. And we expect companies to do this because we all understand that the whole point of any sales and marketing effort is to generate as many leads as possible in order to create as many opportunities as possible to earn business. And in the face of a global marketplace, where there are countless options of web or software development, the sales and marketing team at Algonquin has to work hard to differentiate company and our services from the competition. Finding prospects who are ready and willing to talk to us about our solutions is only the first step. Discovering that we’re a good match process and budget-wise gets us “almost there,” but what does the final “yes” or “no” decision often come down to? Sometimes is simply an intangible quality I’m going to start calling “The Doctor Who Effect.”

Toward the end of the successful sales call mentioned earlier, my co-worker threw out a Doctor Who reference for dramatic effect. And, wouldn’t you know it? We were sitting in a room of Doctor Who aficionados! Now, to be honest, things were going very well prior to the Doctor name drop. We had a good vibe going – some humor, some well-natured sarcasm, and a lot of head nodding. But I truly believe the Doctor Who reference sealed the deal because it helped the prospective client realized that, as people, we’re geared the same way they are. The following week, we returned to give a demo and we discovered they’d already signed our contract, before even seeing the presentation!

Like most sales people, I’ve walked out of a handful of sales calls that were so awkward and uncomfortable, I was sure I was never going to hear from the client again. And I never did. Regardless of our expertise or product offerings, if I don’t “click” with a client, I’m probably not going to get the sale. And, of course, I’ve walked out of sales calls feeling like the prospect and I were long-lost best friends, only to have them go in another direction and, in those cases, I can only assume that while “The Doctor Who Effect” may have been in effect, our solution or price point simply weren’t the right fit for the company.

The “sweet spot” is when you’ve got both the best solution AND the best chemistry going for you. I’ve seen the powerful combination in effect more than once now and I’m convinced it’s key to the majority of successful sales. Now I just have to work on finding more prospects who watch Doctor Who!