Redis安装及配置
本地测试的先下载redis,下载地址:
wget http://download.redis.io/releases/redis-5.0.7.tar.gz tar xzf redis-5.0.7.tar.gz cd redis-5.0.7 make # 启动服务 src/redis-server # 使用客户端测试连接 $ src/redis-cli redis> set foo bar OK redis> get foo "bar"
这样本地环境就搭建起来啦。但是需要注意, Redis是默认只能本地访问 需要修改配置文件
- redis.conf
注释掉bind 127.0.0.1可以使所有的ip访问redis 修改 protected-mode,值改为no
这样就可以随意连接啦,但是生产环境需呀注意别这样搞。
SpringBoot整合Redis
- pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
- redis配置 application.properties
#=========redis基础配置========= spring.redis.database=0 spring.redis.host=127.0.0.1 spring.redis.port=6379 # 连接超时时间 单位 ms(毫秒) spring.redis.timeout=3000 #=========redis线程池设置========= # 连接池中的最大空闲连接,默认值也是8。 spring.redis.jedis.pool.max-idle=200 #连接池中的最小空闲连接,默认值也是0。 spring.redis.jedis.pool.min-idle=200 # 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时 spring.redis.jedis.pool.max-wait=1000
- 编写RedisClient.java 用来封装操作
package com.cj.tool.comtool.utils.tool; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import java.util.List; @Component public class RedisClient { @Autowired private StringRedisTemplate redisTemplate; /** * redis里面的数据类型对应StringRedisTemplate 的不同操作 * 类型String,List,Hash,Set,ZSet 对应的方法分别是opsForValue()、opsForList()、opsForHash()、opsForSet()、opsForZSet() */ /** * 设置键值 * @param key * @param value * @return */ public boolean set(String key, String value) { try { redisTemplate.opsForValue().set(key, value); return true; } catch (Exception e) { e.printStackTrace(); } return false; } /** * 获取指定键值 * @param key * @return */ public Object get(String key) { return redisTemplate.opsForValue().get(key); } /** * 删除某个键 * @param key * @return */ public Object delete(String key) { return redisTemplate.delete(key); } /** * 推入列表 */ public void listLPush(String key, String value) { redisTemplate.opsForList().leftPush(key, value); } public List getList(String key, int start, int end) { return (List) redisTemplate.opsForList().range(key, start, end); // 获取列表数据 } }
- 测试使用
package com.cj.tool.comtool.controller; import com.cj.tool.comtool.utils.tool.RedisClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController public class TestRedisController { @Autowired private RedisClient redisClient; @GetMapping("/api/v1/redis/set") public boolean set() { return redisClient.set("name", "zhangsan"); } @GetMapping("/api/v1/redis/get") public Object get() { System.out.println(redisClient.get("name")); return redisClient.get("name"); } @GetMapping("/api/v1/redis/delete") public Object delete() { System.out.println(redisClient.get("name")); return redisClient.delete("name"); } @GetMapping("/api/v1/redis/list") public Object list() { String key = "user:list"; redisClient.listLPush(key, "hello"); redisClient.listLPush(key, "aoppp.com"); return redisClient.getList(key, 0, -1); } }
- 效果
更多操作可以参考网上博客