ope体育电竞百度_ope电竞竞猜官方网站_ope电竞门户
ope体育电竞百度

小鬼,05网-ope体育电竞百度_ope电竞竞猜官方网站_ope电竞门户

admin admin ⋅ 2019-05-29 07:51:32

前语

在之前的文章中,解说了运用redis处理集群环境session同享的问题【快学springboot】11.整合redis完成session共缠腰瘤享,这儿现已引入了redis相关的依靠,而且经过springboot的装备,完成了session同享。下面,咱们就经过springboot供给的RedisTemplate来操作redis。

注入RedisTemplate

@Autowired
private StringRedisTemplate redisTemplate;

这儿我注入了一个StringRedisTemplate,其等价于RedisTemplate,咱们也能够自界说一个RedisTemplate,如下:

@Configuration
public class RedisTemplateConfig {

@Bean
public Re窦老三disTemplate redisTemplate(RedisConnectionFactory factory) {
RedisTemplate template = new RedisTemplate<>();
// 装备衔接工厂
template.setConnectionF唐依雪actory(factory);
return template;
}

}

自己觉得,彻底没有必要自易中天说潘凤是司马懿界说一个RedisTemplate,除非说有一些序列化上的需求。本文的解说都是根据默许的StringRedisTemplate的。

设置/获取值

咱们能够经过opsForValue().set(k,v)办法设置一个值opsForValue().get(k)办法获取值

@Test
publ小鬼,05网-ope体育电竞百度_ope电竞竞猜官方网站_ope电竞门户ic void testsetAndGetString() {
redisTemplate.opsForValue().set("name", "happyjava");
String name = redisTemplate.opsForValue().get("name");
System.out.println(name);
}

履行成果:

检查redis数据库上的值,如下:

设置值而且一起设置过期时刻

opsForValue().set办法还支撑一起设置键对应的过期时刻

@Test小鬼,05网-ope体育电竞百度_ope电竞竞猜官方网站_ope电竞门户
public void testSetWithExpireTime() {
redisTemplate.opsForValue().set("name2", "happyjava2", 10, Time凤求凰紫晓Unit.SECONDS)女性性感;
String name2 jux518= redisTemplate.opsForValue().get("name2");
System.out.println(name2);
}

履行成果:

happyjava2

获取键的过期时刻

咱们能够经过redisTemplate.getExpire办法取得键的过期时刻

@Test
public void testS小鬼,05网-ope体育电竞百度_ope电竞竞猜官方网站_ope电竞门户etWithExpireTime() {
redisTempl小鬼,05网-ope体育电竞百度_ope电竞竞猜官方网站_ope电竞门户ate.opsForValue().set("name2", "happyjava2", 10, TimeUnit.SECONDS);
String name2 = redisTemplate.opsForValue().get("name2");
System.out.println(name2);
Long expire = redisTe北医网校mplate.getExpire("name2", TimeUnit.SECONDS);
System.out.println(expire);
}

履行成果如下:

happyjava2
9

设置键的过期时刻

咱们能够经过redisTemplate.expire办法设置键的过期时刻

@Test
publi小鬼,05网-ope体育电竞百度_ope电竞竞猜官方网站_ope电竞门户c void testSetExpire() {
redisTemplate.expire("name",120,TimeUnit.SECONDS);
Lo扎纸人姜琳ng expire = redisTemplate.getExpire("name", TimeUnit.SECONDS);
System.out.println(expire);
}

之前设置了name对错过期的,这儿给它设置个过羊哥好声响期时刻。履行成果如下:

119

getAndSet

咱们可性暴行以经过opsForValue().getAndSet办法获取此刻的值,然后设置一个新的值。

@Test
public void test() {
redisTemplate.opsForValue().set("name", "123456");
String name = redisTemplate.opsForValue().getAndSet("name", "happyjava3");
六和彩图库System.out.println(name);
name = redisTemplate.opsForValue().get("朱忠保name医护员手术室互殴");
System.out.println(name);
}

输出成果如下:

123456
happyjava3

append追加

经过redisTemplate小鬼,05网-ope体育电竞百度_ope电竞竞猜官方网站_ope电竞门户.opsForValue().append办法能够追加内容。

 @Test
public void test() {
redisTemplate.opsForValue().append("name","append");
String name = redisTemplate.opsForValue().get("name");
System.out.println(name);
}

这儿向之前的name键追加了一个字符三国之霸王门徒串“append”,输出成果如下:

happyjava3append

自增

自增是redis里十分常用的办法,常常用该办法来完成计数器。咱们能够经过redisTemplate.opsForValue().increment办法完成自增

 @Test
public void test() {
Long count = redisTemplate.opsForValue().increment("count");
System.out.println(count);
Long count1 = redisTemplate.opsForValue().increment("count",特别污的日本漫画图片 11);
System.out.println(count1);
}

假如键不存在,则会默许从0开始自增,咱们也能够设置自增的值的巨细。

自减

咱们能够经过redisTemplate.opsForValue().decrement办法来完成自减

 @Test
public void test() {
Long count = redisTemplate.opsForValue().decrement("count");
System.out.println(count)内蒙古气候网;
Long count1 = redisTemplate.opsForValue().decrement("count", 10);
System.out.println(count1);
}

假如存在则设置/假如不存在则设置

setIfAbsent:假如不存小鬼,05网-ope体育电竞百度_ope电竞竞猜官方网站_ope电竞门户在,则设置。

而且能够经过重载的办法设置过期时刻,这个办法是很重要的,能够根据该办法完成一个分布式锁。

setIfPresent:假如存在,则设置。

 @Test
public void test() {
Boolean aBoolean = redisTemplate.opsForValue().setIf兰菊花Absent("name", "happy");
System.out.println(aBoolean);
Boolean aBoolean1 = redisTemplate.opsForValue().setIfPresent("name", "happy2");
System.out.println(aBoolean1);
}

由于西班牙气候预报之前现已存在name的值,该代码的预期输出成果是false true。

总结

这儿介绍了redis string数据结构的常用操作。接下来的会对其它的数据结构做进一步解说。

相关新闻

admin

admin

TA太懒了...暂时没有任何简介

精彩新闻