08. Redis manejar conjuntos sunion sinter y sdiff en PHP

08.-Redis manejar conjuntos sunion, sinter y sdiff en PHP?

08. Redis%2Bmanejar%2Bconjuntos%2Bsunion%252C%2Bsinter%2By%2Bsdiff%2Ben%2BPHP

sunion: une 2 o mas conjuntos
sinter: Extra los elementos en comun de 2 conjuntos
sdiff:  Los elementos de un conjunto que no esten en otro

<?php
/*
sunion: une 2 o mas conjuntos
sinter: Extra los elementos en comun de 2 conjuntos
sdiff:  Los elementos de un conjunto que no esten en otro
*/
//Creamos la instancia de redis
$redis = new Redis();
//Nos conectamos a redis
$conn = $redis->connect('127.0.0.1', 6379);
//Si la conexion fue exitosa mostramos este texto
if ($conn) {
    echo "Conexion exitosa: estas conectado a Redis...<br/>";
}
//Si la conexion no fue exitosa mostramos este texto y nos salimos
else {
    echo "No se pudo conectar con la base de datos de Redis :(";
    exit();
}

//Borramos la key (para evitar futuros conflictos)
$redis->del("empleados:desarrollo");
$redis->del("empleados:soporte");

//Agregamos un arreglo de todos los empleados de desarrollo
$redis->sadd("empleados:desarrollo", "empleado1", "empleado2", "empleado3");
//Agregamos un arreglo de todos los empleados de soporte
$redis->sadd("empleados:soporte", "empleado3", "empleado4", "empleado5");

//Unimos todos los empleados
$totalEmpleados = $redis->sunion("empleados:soporte", "empleados:desarrollo");
//Sacamos solo los empleados que esten en soporte y tambien en desarrollo
$comunesEmpleados = $redis->sinter("empleados:soporte", "empleados:desarrollo");
//Empleados exclusivamente de desarrollo
$empleadosSoloDesarrollo = $redis->sdiff("empleados:desarrollo", "empleados:soporte");

//Mostramos los resultados de sunion
echo "</br><strong>Unimos todos los empleados:</strong> " . "<br/>";
foreach ($totalEmpleados as $empleado) {
 echo $empleado . "<br/>";
}

//Mostramos los resultados de sdiff
echo "</br><strong>Sacamos solo los empleados que esten en soporte y tambien en desarrollo:</strong> " . "<br/>";
foreach ($comunesEmpleados as $empleado) {
 echo $empleado . "<br/>";
}

//Mostramos los resultados de sunion
echo "</br><strong>Empleados exclusivamente de desarrollo:</strong> " . "<br/>";
foreach ($empleadosSoloDesarrollo as $empleado) {
 echo $empleado . "<br/>";
}
//Borramos las llaves
$redis->del("empleados:desarrollo");
$redis->del("empleados:soporte");

En mi caso esta es la url donde puedo ver el resultado
http://localhost/redis4/conjuntos.php

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Eugenio Chaparro.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a digitalocean.com que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad