Utilizando Redis com a extensão PHPRedis em sua aplicação PHP

Primeiramente como sei que você que está lendo pode não conhecer o redis (também não sou um mega especialista nele, mas tenho aprendido mais a cada dia), mas em sua definição que podemos encontrar em seu site:

Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings, hashes, lists, sets,sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

Em resumo e com minhas palavras (que não deve ser levada como uma verdade absoluta nunca), o redis é um banco de dados NoSQL open-source, que utiliza o padrão chave/valor para armazenamento de dados em memória. É um dos banco de dados mais rápidos do universo NoSQL.

A verdade é que sempre me utilizei do redis, foi em frameworks como o Laravel que basta te-lo no servidor, instalar sua extensão no PHP, adicionar o predis/predis no composer e logo em seguida configura-lo para session, cache e etc, e a “mágica” toda acontece (isso quando já não temos um ambiente com tudo configurando, onde pulamos direto para a parte da “mágica”).

E foi justamente por isso que me propus a aprender como utilizar os recursos que a extensão do redis já nos entrega sem utilizar nenhum framework e nenhum pacote do composer, e logo abaixo vamos ver como tudo isso funciona sem utilizar pacotes ou frameworks que fazem toda mágica pra nós, e lembrando que é apenas uma introdução e você não só pode, como deve se aprofundar mais no assunto.

O primeiro passo é instalar o Redis em nosso servidor, no meu caso estou utilizando o vagrant com a box homestead, logo já tenho o redis instalado no servidor mas você pode conferir como instalar no site do próprio Redis.

O segundo passo é instalar a extensão e registrar no PHP (caso ele ainda não tenha), eu sugiro e sempre faço esta instalação via PECL (caso não tenha esse comando disponível sugiro instalar o php-dev juntamente com o php-pear) com o seguinte comando:

pecl install redis

Depois colocar a seguinte linha no nosso php.ini:

extension=redis.so

Após isso já completamos nossa etapa de instalação e agora vamos para o que realmente interessa, pois, já temos disponível para utilizar a class Redis e é com ela que trabalharemos.

Mãos na massa

1 — Primeiro passo é nos conectarmos ao nosso Redis:

2 — Utilizando metódo get e o mget - para pegar um valor de uma chave ou de várias chaves:

3 — Utilizando o método set e o setex - para setar um valor em uma chave e setar um valor com um tempo de expiração:

4 — Utilizando o método exists e keys - para verificar se existi uma chave e buscando chaves com expressões regulares:

5 — Utilizando o método del - para deletar um chave especifica:

Exemplo prático

Geralmente o Redis é usado no nosso servidor para cache de dados, que é onde evitamos de ficar fazendo sql, que sempre traz o mesmo resultado, direto no nosso banco. O exemplo a seguir é de uma implementação utilizando o PHP e o Mysql, cacheando os dados com o Redis.

Acho que é isso, caso encontre qualquer erro, seja ele de código ou de português (meu SO ta em inglês, então, sem corretor “legalzinho” do chrome), pode deixar ai nos comentários que assim que possível estarei corrigindo.

E não deixando de lembrar que críticas são bem-vindas, afinal, esse ainda é um dos primeiros artigos que escrevo e quero evoluir nisso ainda.