Redis con stivale a molla
In questo post parleremo di Redis , Redis è un database NoSQL basato su chiave-valore che può essere utilizzato per molteplici scopi. È open source ed è un archivio di strutture dati InMemory. Perché Redis supporta tutte le strutture di dati di base come elenco, set, mappa e set ordinato.
Utilizzando Redis possiamo sviluppare diversi tipi di applicazioni come applicazioni di chat, applicazioni di archiviazione di sessioni, dashboard di gioco ecc.
Se vuoi imparare Redis, prima comprendi le diverse strutture di dati che Redis supporta oltre ai comandi che utilizzano i quali possiamo archiviare e ottenere dati da Redis.
Alcuni comandi importanti
Redis supporta String, Set, Sorted Set, List e HashMap come valori chiave. Di seguito sono riportati alcuni comandi di base per comprendere le diverse strutture di dati.
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
Usa i casi di Redis
- Redis può essere utilizzato come database NoSQL basato su valore-chiave.
- Redis può essere utilizzato come provider di cache.
- Redis può essere utilizzato come editore e sottoscrittore, che viene utilizzato nell'elaborazione degli eventi.
- Redis può essere utilizzato come archivio di sessione.
- Redis può essere utilizzato nelle applicazioni di chat.
Quindi, se ti interessa dopo aver letto questo e ora vuoi fare un po' di pratica su Redis, configura il server Redis nel tuo sistema.
- Installa homebrew nel tuo sistema se non c'è.
- I comandi Esegui sotto in sequenza
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
Quindi, dopo questo, se vuoi usare Redis da qualche altro sistema, allora hai bisogno di un client che interagirà con il server Redis.
Ora in questa parte vedremo come possiamo utilizzare Redis con l'avvio a molla e utilizzarlo come database NoSQL.
Impostare
Il primo passaggio consiste nel creare un progetto di avvio Spring di esempio dall'inizializzatore spring e aggiungere la dipendenza spring-boot-starter-data-redis .
Ora, dopo aver importato il progetto nel tuo IDE preferito, crea pacchetti e classi.
La prima classe sarà per la configurazione, abbiamo due driver per Redis, uno è Jedis, un altro è lattuga (è inizializzato pigramente e anche per quanto riguarda le prestazioni è migliore).
Oltre al driver, abbiamo bisogno di un modello per eseguire operazioni sul server Redis, allo stesso modo in cui abbiamo RestTemplate per eseguire operazioni di riposo.
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;
// }
}
Crea una classe di entità
@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();
}
}
Quindi questo è un semplice esempio di utilizzo di Redis come DB con un'applicazione di avvio a molla.
Nel prossimo post vedremo come utilizzare Redis come provider di cache.
Grazie per aver letto!!

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































