Springboot整合redis

Springboot整合redis

1 .简单整合

1.1 导包

	<dependencies>
		<!--导入commons-pool2坐标-->
		<!--Caused by: java.lang.ClassNotFoundException:org.apache.commons.pool2.impl.GenericObjectPoolConfig-->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-pool2</artifactId>
			<version>2.6.2</version>
		</dependency>

		<!--json包-->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.12</version>
		</dependency>
		<!--redis的包-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

1.2 全局配置文件

#主机ip
spring.redis.host=你的ip地址
#设置端口
spring.redis.port=6379
#给redis设置密码
#spring.redis.password=null
#设置最大连接数
spring.redis.jedis.pool.max-active=10
#设置线程池中的最大最小连接
spring.redis.jedis.pool.max-idle=10
spring.redis.jedis.pool.min-idle=0
#连接池的最大阻塞时间 -1的话,表示没有限制
spring.redis.lettuce.pool.max-wait=-1ms

1.3 配置类

@SpringBootConfiguration
@ComponentScan(basePackages = {"com.wcc.redis"})
public class AppConfig {
}

1.4 第三方实体类(manager)

@Component
public class RedisManager {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    public void addKeyAndValue(String key,String value){
        stringRedisTemplate.opsForValue().set(key,value);
    }
    public String getValue(String key){
        String value = stringRedisTemplate.opsForValue().get(key);
        return value;
    }
}

1.5 Service层

public interface RedisService {

    /**
     *给redis中添加String类型的数据结构数据
     * @param key
     * @param value
     */
    void addKeyAndValue(String key,String value);

    /**
     * 通过键来获取value的值
     * @param key
     * @return
     */
    String getValue(String key);
}
@Service
public class RedisServiceImpl implements RedisService {
    @Autowired
    private RedisManager redisManager;
    @Override
    public void addKeyAndValue ( String key, String value ) {
        redisManager.addKeyAndValue(key,value);

    }

    @Override
    public String getValue ( String key ) {
        String value = redisManager.getValue(key);
        System.out.println("servicede"+value);
        return value;
    }
}

1.6 controller

@RestController
public class RedisController {
    @Autowired
    private RedisService redisService;

   @RequestMapping(value = "toAdd")
    public String toSuccess(){
        redisService.addKeyAndValue("nihao","woshizhongguoren");
        return "huoqu";
    }
    @RequestMapping("getValue")
    public String getValue(String key){
        String value = redisService.getValue(key);
        System.out.println("nimenhao");
        System.out.println(value);
        return value;
    }
}

常用的API

stringRedisTemplate.opsForValue(); 这个就是用来操作 String类型的
stringRedisTemplate.opsForList(); 这个主要就用来操作list的 
stringRedisTemplate.opsForZSet(); 这个主要用来操作sorted set
stringRedisTemplate.opsForHash(); 用来操作hash结构的
stringRedisTemplate.opsForSet();  这个就是用来操作Set数据类型的       
 //设置key过期的API
 stringRedisTemplate.expire("NZ1904",60, TimeUnit.SECONDS);
 //ttl :获取一个键的过期时间
 stringRedisTemplate.getExpire()
 //  exists :判断一个键是否存在
 stringRedisTemplate.hasKey("");
 //del :删除一个键值对
 stringRedisTemplate.delete("key");
// incrby 这个命令
 stringRedisTemplate.opsForValue().increment("key",1);
// decrby这个命令
 stringRedisTemplate.opsForValue().increment("key",-1);
 //hmget这个命令
 tringRedisTemplate.opsForHash().entries("");
// hmset
 tringRedisTemplate.opsForHash().putAll("",null);
// hset这个命令
 tringRedisTemplate.opsForHash().put();
 //hdel命令
 tringRedisTemplate.opsForHash().delete()
 //判断hash结构中这个键是否存在
 stringRedisTemplate.opsForHash().hasKey()
// Set集合中获取某一个值
 stringRedisTemplate.opsForSet().members()
// 判断set集合中是否存在某一个值
 tringRedisTemplate.opsForSet().isMember()
 //set集合设置值
 stringRedisTemplate.opsForSet().add()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值