[Быстро изучаем springboot] 14. Список работающих redis

Spring Boot

предисловие

Ранее я объяснял структуру строковых данных Springboot (StringRedisTemplate), работающую с Redis, в этой статье объясняется структура данных списка.

Структура данных списка имеет операции

На следующем рисунке перечислены методы, которые есть в структуре данных списка повторных обращений.

【快学springboot】14.操作redis之list

Методы, предоставляемые StringRedisTemplate

Список методов для работы с redis, предоставляемых RedisTemplate, выглядит следующим образом:

【快学springboot】14.操作redis之list

Ниже мы выбираем некоторые часто используемые методы в качестве примеров для объяснения, другие методы вы можете найти в описании API.

range

Теперь в Redis есть список, ключ: happyjava:list, и есть три значения, как показано ниже:

【快学springboot】14.操作redis之list

Метод диапазона (клавиша K, длинный старт, длинный конец) состоит в том, чтобы получить содержимое указанного диапазона списка.

Начальный индекс начинается с нуля. Получаем элементы со второго по третий следующим образом:

@Test
public void testList() {
 List<String> list = redisTemplate.opsForList().range("happyjava:list", 1, 2);
 assert list != null;
 list.forEach(System.out::println);
}

Выходной результат:

blog.happyjava.cn
​
www.happyjava.cn

size(K key)

получить размер списка

@Test
public void testSize() {
 Long size = redisTemplate.opsForList().size("happyjava:list");
 System.out.println(size);
}

Выходной результат:

【快学springboot】14.操作redis之list

leftPush(K key, V value)

Этот метод идентифицирует данные, которые должны быть отправлены слева (сверху или в начале списка) списка. Если ключ не существует, он будет создан.

@Test
public void testLeftPush() {
 redisTemplate.opsForList().leftPush("happyjava:list", "new happyjava");
}

После выполнения переходим к просмотру данных в redis:

【快学springboot】14.操作redis之list

leftPushAll

Есть два перегруженных метода с неопределенными параметрами: leftPushAll(K key, V... values); ,

Параметры коллекции: leftPushAll (ключ K, значения коллекции)

Неопределенные параметры:

@Test
public void testLeftPushAll() {
 redisTemplate.opsForList().leftPushAll("happyjava:list","apple","happy");
}

Просмотрите данные после выполнения:

【快学springboot】14.操作redis之list

Параметры сбора:

@Test
public void testLeftPushAll() {
// redisTemplate.opsForList().leftPushAll("happyjava:list","apple","happy");
 redisTemplate.opsForList().leftPushAll("happyjava:list", Arrays.asList("new happy1", "new happy2"));
}

Просмотрите данные после выполнения:

【快学springboot】14.操作redis之list

rightPush(K key, V value)

Проталкивать данные с конца списка

@Test
public void testRightPush() {
 redisTemplate.opsForList().rightPush("happyjava:list","java");
}

Просмотр данных Redis после выполнения:

【快学springboot】14.操作redis之list

rightPushAll

Этот метод, как и класс leftPushAll, имеет два перегруженных метода:

【快学springboot】14.操作redis之list

Я не буду вдаваться в подробности здесь.

метод set (ключ K, длинный индекс, значение V)

Вы можете напрямую установить значение индекса в списке, индекс начинается с 0

@Test
public void testSet() {
 redisTemplate.opsForList().set("happyjava:list",1,"test set");
}

Просмотр Redis после выполнения

Метод удаления (ключ K, длинный счет, значение объекта)

удалить значение, удалить счетчик, удалить с начала

Сейчас данные в Redis такие:

【快学springboot】14.操作redis之list

Выполните код:

@Test
public void testRemove() {
 redisTemplate.opsForList().remove("happyjava:list",2,"happy");
}

Просмотрите данные после выполнения:

【快学springboot】14.操作redis之list

метод индекса (клавиша K, длинный индекс)

Возвращает элемент по индексу (начиная с 0). Теперь данные Redis выглядят следующим образом:

【快学springboot】14.操作redis之list

@Test
public void testIndex() {
 String value = redisTemplate.opsForList().index("happyjava:list", 1);
 System.out.println(value);
}

Результат выполнения следующий:

【快学springboot】14.操作redis之list

leftPop

Есть два перегруженных метода:

V leftPop(K key);

V leftPop(K key, long timeout, TimeUnit unit);

Этот метод будет всплывать элемент в начале списка (удалить его в списке после того, как он всплывает).Как и стек, перегруженный метод будет блокироваться, если в списке нет данных, и вернется, когда есть данные (самый длинный).Время блокировки – установленный тайм-аут). Этот метод соответствует операции redis BLPOP (блокировка левого всплывающего окна)

rightPop

Аналогичен leftPop, но извлекает данные из конца списка.

Суммировать

В этой статье объясняется структура списка данных Springboot, работающая с Redis, и большинство методов были объяснены и продемонстрированы. Список также является очень часто используемой структурой данных в Redis, и в будущем мы продолжим объяснять другие структуры данных Redis.