Introducción a Redis
Redis (Sitio web oficial: https://redis.io) es una base de datos de caché persistente de registro basada en la memoria, guardada en formato de valor clave. Redis es completamente gratuito y de código abierto. Está escrito en lenguaje ansi. Al igual que otros productos de caché de valor clave, Redis tiene las siguientes tres características.
• Redis admite la persistencia de datos, que pueden guardar datos en la memoria en el disco y se puede cargar nuevamente para su uso durante el reinicio;
• Redis no solo admite datos de tipo de valor clave simple, sino que también proporciona el almacenamiento de estructuras de datos como cadenas, listas vinculadas, colecciones, colecciones ordenadas y hashs;
• Redis admite la copia de seguridad de datos, es decir, copia de seguridad de datos en modo maestro-esclavo.
En un sistema Mac, no necesita descargar Redis para usarlo. Estos son los comandos relevantes para descargar los paquetes comprimidos de Redis del servidor de alojamiento de Redis y descomponerlos.
wget http://download.redis.io/releases/redis-4.0.8.tar.gztar xzf redis-4.0.8.tar.gzcd redis-4.0.8make
Antes de utilizar los servicios proporcionados por Redis, primero debe comenzar los servicios relacionados con Redis. El comando para comenzar a redis en el sistema Mac es el siguiente.
src/redis-server
Luego, vuelva a abrir un cliente Redis y use el siguiente comando para conectarse al servidor Redis.
Src/Redis-Cliredis> set foo barokredis> Get foo "bar"
Integrar la base de datos de Redis
Antes de usar Redis, debe introducir dependencias relacionadas. Los scripts que dependen del método Maven son los siguientes:
<Spendency> <MoupRoMID> org.springframework.boot </groupid> <artifactid> spring-boot-starter-data-redis </artifactid> </dependence>
Después de eso, escribimos la configuración relevante de Redis a YML. Aquí recomendamos escribir diferentes configuraciones de acuerdo con diferentes entornos antes. El puerto predeterminado utilizado por Redis es 6379. Por lo general, Redis usa una base de datos No. 0 por defecto, y hay 16 bases de datos de forma predeterminada:
#Dedis Configuration Redis:# Base de datos Índice Base de datos: 0# Dirección del servidor Host: 127.0.0.1# Puerto de conexión del servidor Puerto: 6379# Enlace Contraseña Contraseña Contraseña:# Link Pool Pool:# Número máximo de conexiones (Valor negativo significa Límite) Máx-Activo: 8# Tiempo de espera de bloqueo máximo (Valor negativo significa sin límite) Max-Wait: 1# Máxima Máximo Máximo MAX-Idle: 8 Minim Tiempo de espera (milisegundos) Tiempo de espera: 0
Si es el método Application.Properties, algunas configuraciones son las siguientes:
spring.redis.hostname = 127.0.0.1spring.redis.port = 6379 spring.redis.pool.maxactive = 8 spring.redis.pool.maxwait = -1 spring.redis.pool.maxidle = 8 spring.redis.pool.minidle = 0 spring.redis.timeout = 0
Cree un nuevo archivo redisconfig.java para almacenar archivos de configuración.
@Configuration @enableCaching // Abra la clasificación pública de anotación Redisconfig extiende CachingConfigursUpport {@Bean public Cachemanager Cachemanager (redistemplate <?,?> Redistemplate) {Cachemanager Cachemanager = New Rediscachemanaer (redistemla); Volver a Cachemanager; } @Bean public redistemplate <String, String> redistemplate (redisConnectionFactory factory) {redistemplate <string, string> redistemplate = new Redistemplate <String, String> (); redistemplate.setConnectionFactory (fábrica); regresar redistemplate; }}Cree una clase RedisService.java en el paquete de servicio.
interfaz pública rediservice {set public void (clave de cadena, valor de objeto); objeto público get (clave de cadena); }Cree una nueva clase de implementación de servicios redisServiceImpl.java.
@ServicePublic Class redisServiceImpl implementa redisService {@Resource private redistemplate <string, object> redistemplate; Public void set (clave de cadena, valor de objeto) {valueOperations <string, object> vo = redistemplate.opsforValue (); vo.set (clave, valor); } Public Object get (Key String) {ValueOperations <String, Object> vo = redistemplate.opsforValue (); return vo.get (clave); }}Cree un nuevo código de control de controlador UserController.java
@Controlador @requestmapping (path = "/user") Clase pública UserController {@aUtoWired private UserService UserSerVice; @Autowired RedisService RedisService RedisService; // Obtenga un usuario de redis@requestmapping (valor = "/getUserFromredis", método = requestmethod.get) public @ResponseBody User GetRedis (@RequestParam String Key) {return (user) redisService.get (clave); } // Obtenga todos los usuarios @RequestMapping (value = "/getUsers", método = requestmethod.get) public @ResponseBody Page <serem> list (modelo modelo, pagible pagible) {return userservice.findall (pagable); } // Agregar user @getmapping (valor = "/adduser") public @ResponseBody String addUser (@RequestParam String dictum, @RequestParam String Password, @RequestParam String UserName) {user User = new User (); user.setDictum (dictum); user.setPassword (contraseña); user.setUsername (nombre de usuario); System.out.println (usuario); UserService.SaveUser (usuario); redisService.set (user.getID ()+"", usuario); regresar "guardado"; }}El código de la clase de entidad user.java diseñado en este artículo es el siguiente: almacenar objetos en redis requiere serialización.
@Entity@table (name = "s_user") El usuario de clase pública implementa serializable {private static final long serialversionUid = 1l; @ID @GeneratedValue (estrategia = generaciónType.auto) ID de entero privado; nombre de usuario de cadena privada; contraseña de cadena privada; dictum de cadena privada; @Onetomany (mappedBy = "user", fetch = fetchType. Lazy, cascade = {cascadeType. All}) set private <foto> setPhoto; // omitir getter y setter @Override public string toString () {return "user [id =" + id + ", username =" + username + ", contraseña =" + contraseña + ", dictum =" + dictum + ", setPhoto =" + setPhoto + "]"; }}Resumir
Lo anterior es el método de la base de datos Redis de SpringBoot presentada por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!