Cluster Redis RTT

Cluster Redis RTT

Atualmente, estamos usando o Redis como nosso armazenamento de dados. Estou criando uma nova seção onde precisamos classificar e paginar os usuários. Então, estou pensando em usar o conjunto classificado para manter a classificação e o ID do usuário. E Hash para manter os dados do perfil do usuário. Um colega me chamou a atenção para o fato de que precisaremos fazer muitas solicitações ao redis para buscar dados de perfil de usuários usando HGET. então o tempo de ida e volta será um problema. Eu estava planejando usar o HMGET, mas depois de fazer algumas pesquisas, descobri que ele pode causar problemas quando o Redis está agrupado porque as chaves são armazenadas em diferentes nós do Redis. Estou usando o phpredis, ele possui fragmentação do lado do cliente (estou tendo problemas para entender o que é isso).

eu estava pensando em fazer assim:

classificação

zadd userRank 1 5
zadd userRank 2 2
zadd userRank 3 4
zadd userRank 4 3

perfil de usuário

hset userProfile user:5 "{'userId':'5','name':'usera'}"
hset userProfile user:4 "{'userId':'4','name':'userb'}"
hset userProfile user:3 "{'userId':'3','name':'userc'}"
hset userProfile user:2 "{'userId':'2','name':'userb'}"

1) O HMGET funcionará normalmente em Redis clusterizado?

2) se não, o que posso fazer?

3) existe alguma maneira melhor de implementar isso?

Responder1

  1. HMGET deve funcionar em Redis agrupado porque está relacionado apenas a uma única chave. Cada HMGET será encaminhado para o nó que contém a chave
  2. /
  3. Não é uma boa ideia armazenar todos os usuários serializados em um hash, pois você perderá a capacidade de solicitar/inc/dec alguns campos.

Prefira:

hmset user:5 userId 5 name usera
hmset user:4 userId 4 name userb
hmset user:3 userId 3 name userc
hmset user:2 userId 2 name userb

Seu esquema de classificação está ok. Para recuperar e paginar entre os usuários mais bem classificados, basta fazer umZREVRANGEBYSCOREe, em seguida, solicite cada usuário.

Observação:agrupamentonão é o mesmo quefragmentação.

informação relacionada