Configuración de Redis y comandos básicos de NoSQL

Configuración de Redis y comandos básicos de NoSQL

1. Base de datos relacional y base de datos no relacional

Base de datos relacional

  • Una base de datos estructurada, construida sobre un modelo relacional

  • generalmente orientado a registros

  • incluir

    Oracle, MySQL, SQLServer, Microsoft Access, DB2, etc.

base de datos no relacional

  • Las bases de datos distintas de las principales bases de datos relacionales se consideran no relacionales.

  • incluir

    Redis, MongBD, Hbase, CouhDB, etc.

la diferencia

1. Diferentes métodos de almacenamiento de datos

La principal diferencia entre las bases de datos relacionales y no relacionales es la forma en que se almacenan los datos. Los datos relacionales son inherentemente tabulares y, por lo tanto, se almacenan en filas y columnas de una tabla de datos. Las tablas de datos se pueden asociar entre sí y almacenarse en colaboración, y también es fácil extraer datos.
Por el contrario, los datos no relacionales no caben en las filas y columnas de las tablas, sino que se agrupan en grandes porciones. Los datos no relacionales generalmente se almacenan en conjuntos de datos, como documentos, pares clave-valor o estructuras gráficas. Sus datos y sus características son el factor de influencia número uno en la elección de cómo almacenar y extraer sus datos.

2. Diferentes métodos de expansión

La mayor diferencia entre las bases de datos SQL y NoSQL puede estar en la forma de expansión.Para soportar la creciente demanda, por supuesto, se requiere expansión.
Para admitir más concurrencia, la base de datos SQL se amplía, es decir, para aumentar la potencia de procesamiento y utilizar una computadora más rápida, de modo que el mismo conjunto de datos se pueda procesar más rápido. Debido a que los datos se almacenan en tablas relacionales, es necesario superar los cuellos de botella en el rendimiento de las operaciones que pueden involucrar muchas tablas aumentando el rendimiento de la computadora. Aunque la base de datos SQL tiene mucho espacio para la expansión, eventualmente alcanzará el límite superior de expansión vertical.
Las bases de datos NoSQL, por otro lado, escalan horizontalmente. Debido a que el almacenamiento de datos no relacionales está inherentemente distribuido, la expansión de las bases de datos NoSQL se puede realizar agregando servidores de bases de datos (nodos) más comunes al grupo de recursos para compartir la carga.

3. Soporte diferente para transacciones

Si las operaciones de datos requieren una alta transaccionalidad o las consultas de datos complejas necesitan controlar el plan de ejecución, entonces la base de datos SQL tradicional es su mejor opción en términos de rendimiento y estabilidad. La base de datos SQL admite un control detallado sobre la atomicidad de las transacciones y es fácil revertir las transacciones.
Aunque las bases de datos NoSQL también pueden utilizar operaciones de transacción, no se pueden comparar con las bases de datos relacionales en términos de estabilidad, por lo que su valor real radica en la escalabilidad de las operaciones y el procesamiento de grandes cantidades de datos.

resumen

  • base de datos no relacional

    1. Los datos se almacenan en el caché, lo que favorece la velocidad de lectura/datos de consulta

    2. Ubicación flexible en la arquitectura

    3. Distribuido y altamente escalable

  • Base de datos relacional

    1. Alta seguridad (persistencia)

    2. Gran capacidad de procesamiento de transacciones

    3. Gran capacidad de control de tareas

    4. La capacidad de realizar copias de seguridad de registros, recuperación y recuperación ante desastres es más fuerte

2. Introducción a Redis

Redis (Remote Dictionary Server) es una base de datos NoSQL de código abierto escrita en C.

Redis se ejecuta en memoria y admite persistencia. Adopta la forma de almacenamiento clave-valor (par clave-valor), que es una parte indispensable de la arquitectura distribuida actual.

El programa del servidor de Redis es un modelo de proceso único, es decir, se pueden iniciar varios procesos de Redis en un servidor al mismo tiempo, y la velocidad de procesamiento real de Redis depende completamente de la eficiencia de ejecución del proceso principal. Si solo se ejecuta un proceso de Redis en el servidor, cuando varios clientes acceden al mismo tiempo, la capacidad de procesamiento del servidor disminuirá hasta cierto punto. Si se inician varios procesos de Redis en el mismo servidor, Redis ejercerá mucha presión sobre la CPU del servidor y mejorará las capacidades de procesamiento simultáneo. Es decir: en el entorno de producción real, es necesario decidir cuántos procesos de Redis abrir según las necesidades reales. Si tiene requisitos más altos para una alta simultaneidad, puede considerar abrir varios procesos en el mismo servidor. Si los recursos de la CPU son relativamente escasos, se puede utilizar un solo proceso.

  • Ventajas de Redis
    1. Tiene una velocidad de lectura y escritura de datos extremadamente alta: la velocidad de lectura de datos puede alcanzar hasta 110 000 veces/s, y la velocidad de escritura de datos puede alcanzar hasta 81 000 veces/s.

    2. Admite tipos de datos enriquecidos: admite operaciones de tipo de datos como clave-valor, cadenas, listas, hashes, conjuntos y conjuntos ordenados.

    PD:

    Cadenas cadena (puede ser de tipo entero, punto flotante y carácter, denominados colectivamente elemento)

    Lista de listas (cola de implementación, los elementos no son únicos, principio de primero en entrar, primero en salir)

    Hash hash set (la clave del hash debe ser única)

    Colección de conjuntos (elementos distintos)

    Conjuntos ordenados colección ordenada

    3. Admite persistencia de datos: los datos en la memoria se pueden guardar en el disco y se pueden cargar nuevamente para usarlos al reiniciar.

    4. Atomicidad: todas las operaciones de Redis son atómicas.

    5. Admite copia de seguridad de datos: es decir, copia de seguridad de datos en modo maestro-salve.

Redis es una base de datos basada en memoria y el almacenamiento en caché es uno de sus escenarios más utilizados. Además, los escenarios de aplicaciones comunes de Redis también incluyen operaciones para obtener los datos n más recientes, aplicaciones de clasificación, aplicaciones de contador, relaciones de almacenamiento, sistemas de análisis en tiempo real y registros.

  • Razones de la alta velocidad de Reids

    1. Redis es una estructura de memoria pura, lo que evita operaciones que consumen mucho tiempo, como la E/S de disco

    2. El módulo principal del procesamiento de comandos de Redis es de subproceso único, lo que reduce el costo de la competencia de bloqueo, la creación y destrucción frecuentes de subprocesos y reduce el consumo de cambio de contexto de subprocesos.

    3. Se adopta el mecanismo de multiplexación de E/S, lo que mejora en gran medida la eficiencia de la concurrencia

    PD: los subprocesos múltiples recientemente agregados en Redis 6.0 solo usan subprocesos múltiples para procesar solicitudes de red, mientras que los comandos de lectura y escritura de datos aún se procesan mediante un solo subproceso.

3. Instalación e implementación de Redis

[root@lwb ~]# systemctl stop firewalld
[root@lwb ~]# setenforce 0
[root@lwb ~]# yum install -y gcc-c++ make

[root@lwb ~]# cd /opt
[root@lwb opt]# tar xf redis-5.0.7.tar.gz
[root@lwb opt]# cd redis-5.0.7/
[root@lwb redis-5.0.7]# make prefix=/usr/local/redis install

[root@lwb redis-5.0.7]# cd utils
[root@lwb utils]# ./install_server.sh

[root@lwb utils]# ln -s /usr/local/redis/bin/* /usr/local/bin

Por favor agregue una descripción de la imagen

Por favor agregue una descripción de la imagen

[root@lwb utils]# vim /etc/redis/6379.conf

Por favor agregue una descripción de la imagen

[root@lwb utils]# /etc/init.d/redis_6379 restart

#可以在全局使用redis
[root@lwb utils]# ln -s /etc/init.d/redis_6379 /usr/local/bin/redis

#进入redis
[root@lwb utils]# redis-cli -h 192.168.36.40 -p 6379

Por favor agregue una descripción de la imagen

4. Herramienta de comando Redis

redis-server    :用于启动Redis的工具
redis-benchmark :用于检测Redis在本机的运行效率
redis-check-aof :修复AOF持久化文件
redis-check-rdb :修复RDB持久化文件
redis-cli       :Redis命令行工具
redis-cli -h host -p port -a passwd
-h:指定远程主机
-p:指定Redis服务的端口号
-a:指定密码,未设置数据库密码可以省略-a选项
若不添加任何选项表示,则使用 127.0.0.1:6379 连接本机上的Redis数据库

redis-cli -h 192.168.36.40 -p 6379

5. Herramienta de prueba Redis-benchmark

redis-benchmark es una herramienta oficial de prueba de rendimiento de Redis que puede probar de manera efectiva el rendimiento de los servicios de Redis

Formato de gramática:

redis-benchmark [选项] [选项值]

opciones:

-h    :指定服务器主机名
-p    :指定服务器端口
-s    :指定服务器socket
-c    :指定并发连接数
-n    :指定请求数
-d    :以字节的形式指定SET/GET值的数据大小
-k    :l=keep alive 0=reconnect 
-r    :SET/GET/INCR 使用随机key,SADD使用随机值
-P    :通过管道传输<numreq>请求
-q    :强制退出redis。仅显示query/sec值
--csv :以csv格式输出
-l    :生成循环,永久执行测试
-t    :仅运行以逗号分隔的测试命令列表
-I    :Idle模式。仅打开N个idle连接并等待
#向IP地址为192.168.36.40、端口为6379的Redis服务器发送100个并发连接与100000个请求测试性能
redis-benchmark -h 192.168.36.40 -p 6379 -c 100 -n 100000

#测试存取大小为100字节的数据包的性能
redis-benchmark -h 192.168.36.40 -p 6379 -q -d 100

#测试本机上redis服务在运行set与lpush操作时的性能
redis-benchmark -t set,lpush -n 1000000 -q

6. Comandos comunes de la base de datos Redis

set      :存放数据,命令格式为 set key value
get      :获取数据,命令格式为 get key
keys *   :查看当前数据库中所有键
keys v*  :查看当前数据库中以v开头的数据
keys v?  :查看当前数据库中以v开头后面包含任意一位的数据
keys v?? :查看当前数据库中以v开头后面包含任意两位的数据
exists   :判断key是否存在,命令格式 exists key
del      :删除key,命令格式 del key
type     :查看key的类型,命令格式 type key
rename   :重命名,命令格式 rename key1 key2,若key2已存在则覆盖
renamenx :将key1修改为key2之前判断key2是否存在,不存在则重命名,若存在则无效
dbsize   :查看当前数据库中key的数目

config set requirepass 密码 :设置密码
auth 密码 :使用密码
config get requirepass :查询密码
config set requirepass '' :取消密码

7. Comandos comunes de múltiples bases de datos de Redis

Redis admite varias bases de datos.Redis contiene 16 bases de datos de forma predeterminada, y los nombres de las bases de datos se nombran secuencialmente con números del 0 al 15. Varias bases de datos son independientes entre sí y no interfieren entre sí

#多数据库间切换
select 序号

#多数据库间移动数据
move key 序号

#清空当前数据库数据
flushdb

#清空所有数据库的数据,慎用!
flushall

Supongo que te gusta

Origin blog.csdn.net/liwenbin19920922/article/details/126467072
Recomendado
Clasificación