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);
}
}
- 效果
更多操作可以参考网上博客
本文为作者原创,手码不易,允许转载,转载后请以链接形式说明文章出处。