Redis с Spring Boot
В этом посте мы обсудим Redis . Redis — это база данных NoSQL на основе ключей и значений, которую можно использовать для различных целей. Это открытый исходный код, и это хранилище структуры данных InMemory. Потому что Redis поддерживает все основные структуры данных, такие как список, набор, карта и отсортированный набор.
Используя Redis, мы можем разрабатывать различные типы приложений, такие как приложения для чата, приложения для хранения сеансов, игровые панели и т. д.
Если вы хотите изучить Redis, сначала узнайте о различных структурах данных, которые Redis поддерживает, кроме команд, с помощью которых мы можем хранить и получать данные из Redis.
Некоторые важные команды
Redis поддерживает String, Set, Sorted Set, List и HashMap в качестве ключ-значение. Ниже приведены некоторые основные команды для понимания различных структур данных.
String
SET foo bar (foo is key, bar is value)
GET foo
bar
HashMap
HMSET student name: "shubham" age: 25
HGETALL student
List
LPUSH product car
LPUSH product bike
LRANGE product 0 10
Set
SADD product car
SADD product bike
SMEMBERS product
Варианты использования Redis
- Redis можно использовать в качестве базы данных NoSQL на основе ключей и значений.
- Redis можно использовать в качестве поставщика кеша.
- Redis можно использовать в качестве издателя и подписчика, который используется при обработке событий.
- Redis можно использовать как хранилище сеансов.
- Redis можно использовать в чат-приложениях.
Так что, если после прочтения это вас заинтересовало, и теперь вы хотите попрактиковаться в Redis, настройте сервер Redis в своей системе.
- Установите homebrew в вашей системе, если ее там нет.
- Команды «Выполнить ниже» последовательно
brew install redis
After succesfull installation
brew services start redis
After starting redis if you want to try above commands
redis-cli
To test whether redis server is working
PING
If yu get PONG then its connected
If you want to monitor which all commands are getting executed on redis
redis-monitor
Поэтому после этого, если вы хотите использовать Redis из какой-либо другой системы, вам понадобится клиент, который будет взаимодействовать с сервером Redis.
Теперь в этой части мы увидим, как мы можем использовать Redis с весенней загрузкой и использовать его в качестве базы данных NoSQL.
Настраивать
Первым шагом является создание образца проекта загрузки Spring из инициализатора Spring и добавление зависимости spring-boot-starter-data-redis .
Теперь, после импорта проекта в вашу любимую IDE, создайте пакеты и классы.
Первый класс будет для конфигурации. У нас есть два драйвера для Redis, один — Jedis, другой — салат (он лениво инициализируется, и с точки зрения производительности он также лучше).
Помимо драйвера, нам нужен шаблон для выполнения операций на сервере Redis, аналогично тому, как у нас есть RestTemplate для выполнения остальных операций.
package com.redisexample.redisdemo.config;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.repository.configuration.EnableRedisRepositories;
import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
//@EnableRedisRepositories
public class AppConfig {
//There are two ways of creating driver, one is jedis another is lettuce,
//lettuce is bit lazy in intialization so it creates beans lazily
//It is using default host and port
@Bean
RedisConnectionFactory jedisConnectionFactory() {
return new LettuceConnectionFactory();
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(jedisConnectionFactory());
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new JdkSerializationRedisSerializer());
template.setValueSerializer(new JdkSerializationRedisSerializer());
template.setEnableTransactionSupport(true);
template.afterPropertiesSet();
return template;
}
//For setting host and port
// @Bean
// JedisConnectionFactory jedisConnectionFactory() {
// JedisConnectionFactory jedisConFactory
// = new JedisConnectionFactory();
// jedisConFactory.setHostName("localhost");
// jedisConFactory.setPort(6379);
// return jedisConFactory;
// }
}
Создайте класс сущности
@RedisHash("student") // this is a set so we can use set command to see data via redis cli
public class Student {
public enum Gender {
MALE, FEMALE
}
private Long id;
private String name;
private int age;
private String city;
//getters and setters
}
@Repository
public interface StudnetRepo extends CrudRepository<Student, Long> {
}
package com.redisexample.redisdemo.controller;
import com.redisexample.redisdemo.model.Student;
import com.redisexample.redisdemo.repo.StudnetRepo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/student")
public class StudentController {
@Autowired
private StudnetRepo studnetRepo;
@PostMapping
public void saveStudent(@RequestBody Student student){
studnetRepo.save(student);
}
@GetMapping
public Iterable<Student> getStudent(){
return studnetRepo.findAll();
}
}
Итак, это простой пример использования Redis в качестве БД с приложением Spring Boot.
В следующем посте мы увидим, как использовать Redis в качестве поставщика кеша.
Спасибо за прочтение!!

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































