Maison  >  Article  >  base de données  >  Quelles données Redis met-il généralement en cache ?

Quelles données Redis met-il généralement en cache ?

anonymity
anonymityoriginal
2019-06-05 16:27:036821parcourir

redis a principalement les types de données suivants :

string

hash

liste

ensemble

ensemble trié

Quelles données Redis met-il généralement en cache ?

chaîne

Il s'agit du type le plus simple, qui est un ensemble et un get ordinaires, et effectue une mise en cache KV simple.

set college szu

hash

Il s'agit d'une structure similaire à la carte. Elle permet généralement aux données structurées, telles qu'un objet (à condition que l'objet ne soit pas imbriqué d'autres objets). mis en cache dans Redis, puis chaque fois que vous lisez ou écrivez le cache, vous pouvez exploiter un certain champ dans le hachage.

hset person name bingo
hset person age 20
hset person id 1
hget person name
person = {
    "name": "bingo",
    "age": 20,
    "id": 1
}

list

list est une liste ordonnée, qui peut être utilisée de plusieurs manières.

Par exemple, vous pouvez utiliser list pour stocker certaines structures de données de type liste, telles que les listes de fans et les listes de commentaires d'articles.

Par exemple, vous pouvez utiliser la commande lrange pour lire des éléments dans une certaine plage fermée, et vous pouvez implémenter des requêtes de pagination basées sur des listes. Basé sur Redis, vous pouvez implémenter des requêtes de pagination simples. la pagination des performances, et vous pouvez faire des choses comme micro Bo, c'est quelque chose comme faire défiler vers le bas et paginer en continu. Il a des performances élevées et peut simplement aller page par page.

# 0 position de départ, -1 position de fin Lorsque la position de fin est -1, cela signifie la dernière position de la liste, c'est-à-dire tout afficher.

lrange mylist 0 -1

Par exemple, vous pouvez créer une simple file d'attente de messages, la mettre en tête de la liste et la retirer de la queue de la liste.

lpush mylist 1
lpush mylist 2
lpush mylist 3 4 5
# 1
rpop mylist

set

set est un ensemble non ordonné qui supprime automatiquement les doublons.

Jetez les données qui doivent être dédupliquées dans le système directement en fonction de l'ensemble, et elles seront automatiquement dédupliquées. Si vous avez besoin d'une déduplication globale rapide de certaines données, vous pouvez bien sûr également utiliser le HashSet dans. la mémoire jvm. Effectuez la déduplication, mais que se passe-t-il si l'un de vos systèmes est déployé sur plusieurs machines ? La déduplication d'ensemble global doit être effectuée sur la base de Redis.

Vous pouvez effectuer des opérations d'intersection, d'union et de différence en fonction d'un ensemble. Par exemple, si vous vous croisez, vous pouvez combiner les listes de fans de deux personnes pour voir qui sont leurs amis communs. Droite.

Mettez les fans des deux grands V en deux sets et faites une intersection entre les deux sets.

#-------操作一个set-------
# 添加元素
sadd mySet 1
# 查看全部元素
smembers mySet
# 判断是否包含某个值
sismember mySet 3
# 删除某个/些元素
srem mySet 1
srem mySet 2 4
# 查看元素个数
scard mySet
# 随机删除一个元素
spop mySet
#-------操作多个set-------
# 将一个set的元素移动到另外一个set
smove yourSet mySet 2
# 求两set的交集
sinter yourSet mySet
# 求两set的并集
sunion yourSet mySet
# 求在yourSet中而不在mySet中的元素
sdiff yourSet mySet

ensemble trié

l'ensemble trié est un ensemble trié, qui est dédupliqué mais peut être trié lors de l'écriture, il reçoit un score et est automatiquement trié en fonction. la partition.

zadd board 85 zhangsan
zadd board 72 lisi
zadd board 96 wangwu
zadd board 63 zhaoliu
# 获取排名前三的用户(默认是升序,所以需要 rev 改为降序)
zrevrange board 0 3
# 获取某用户的排名
zrank board zhaoliu

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn