предисловие
Ранее я объяснял структуру строковых данных Springboot (StringRedisTemplate), работающую с Redis, в этой статье объясняется структура данных списка.
Структура данных списка имеет операции
На следующем рисунке перечислены методы, которые есть в структуре данных списка повторных обращений.
Методы, предоставляемые StringRedisTemplate
Список методов для работы с redis, предоставляемых RedisTemplate, выглядит следующим образом:
Ниже мы выбираем некоторые часто используемые методы в качестве примеров для объяснения, другие методы вы можете найти в описании API.
range
Теперь в Redis есть список, ключ: happyjava: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);
}
Выходной результат:
leftPush(K key, V value)
Этот метод идентифицирует данные, которые должны быть отправлены слева (сверху или в начале списка) списка. Если ключ не существует, он будет создан.
@Test
public void testLeftPush() {
redisTemplate.opsForList().leftPush("happyjava:list", "new happyjava");
}
После выполнения переходим к просмотру данных в redis:
leftPushAll
Есть два перегруженных метода с неопределенными параметрами: leftPushAll(K key, V... values); ,
Параметры коллекции: leftPushAll (ключ K, значения коллекции)
Неопределенные параметры:
@Test
public void testLeftPushAll() {
redisTemplate.opsForList().leftPushAll("happyjava:list","apple","happy");
}
Просмотрите данные после выполнения:
Параметры сбора:
@Test
public void testLeftPushAll() {
// redisTemplate.opsForList().leftPushAll("happyjava:list","apple","happy");
redisTemplate.opsForList().leftPushAll("happyjava:list", Arrays.asList("new happy1", "new happy2"));
}
Просмотрите данные после выполнения:
rightPush(K key, V value)
Проталкивать данные с конца списка
@Test
public void testRightPush() {
redisTemplate.opsForList().rightPush("happyjava:list","java");
}
Просмотр данных Redis после выполнения:
rightPushAll
Этот метод, как и класс leftPushAll, имеет два перегруженных метода:
Я не буду вдаваться в подробности здесь.
метод set (ключ K, длинный индекс, значение V)
Вы можете напрямую установить значение индекса в списке, индекс начинается с 0
@Test
public void testSet() {
redisTemplate.opsForList().set("happyjava:list",1,"test set");
}
Просмотр Redis после выполнения
Метод удаления (ключ K, длинный счет, значение объекта)
удалить значение, удалить счетчик, удалить с начала
Сейчас данные в Redis такие:
Выполните код:
@Test
public void testRemove() {
redisTemplate.opsForList().remove("happyjava:list",2,"happy");
}
Просмотрите данные после выполнения:
метод индекса (клавиша K, длинный индекс)
Возвращает элемент по индексу (начиная с 0). Теперь данные Redis выглядят следующим образом:
@Test
public void testIndex() {
String value = redisTemplate.opsForList().index("happyjava:list", 1);
System.out.println(value);
}
Результат выполнения следующий:
leftPop
Есть два перегруженных метода:
V leftPop(K key);
V leftPop(K key, long timeout, TimeUnit unit);
Этот метод будет всплывать элемент в начале списка (удалить его в списке после того, как он всплывает).Как и стек, перегруженный метод будет блокироваться, если в списке нет данных, и вернется, когда есть данные (самый длинный).Время блокировки – установленный тайм-аут). Этот метод соответствует операции redis BLPOP (блокировка левого всплывающего окна)
rightPop
Аналогичен leftPop, но извлекает данные из конца списка.
Суммировать
В этой статье объясняется структура списка данных Springboot, работающая с Redis, и большинство методов были объяснены и продемонстрированы. Список также является очень часто используемой структурой данных в Redis, и в будущем мы продолжим объяснять другие структуры данных Redis.