springboot配置远程redis
在云服务器上配置redis
redis进行下载安装
首先去腾讯云或者阿里云租一个服务器,楼主这里选择的是1核 2GB 1Mbps的小型云服务器,一个月9元,很便宜。
租好的服务器选择centos的操作系统,首先可以检查一下是否安装了gcc,(一般默认会帮你装好了)
rpm -qa|grep gcc*
//无则安装。
yum install gcc-c++
//安装redis
mkdir /usr/lib/redis
cd /usr/lib/redis/
wget https://mirrors.huaweicloud.com/redis/redis-5.0.5.tar.gz
tar -zxvf redis-5.0.5.tar.gz
cd ./redis-5.0.5/
make
进行redis的配置
make PREFIX=/usr/local/redis install
//检查服务是否安装
ls /usr/local/redis/bin
cp /usr/lib/redis/redis-5.0.5/redis.conf /usr/local/redis/
//把解压目录下配置文件复制到安装路径下
cd /usr/local/redis
vim redis.conf
将此处的bind 改为0.0.0.0,原本的是只有本机能够访问,修改后是任何地址都能够访问。
//在vim中使用 :/你要查找的内容 能够快速找到相应的地方
设置你自己的访问密码,后续在springboot进行配置。
配置redis 的启动,将其设为服务。
cd /usr/lib/redis/redis-5.0.5/utils/
./install_server.sh
随后会让你进行端口的选择以及相关的配置文件的存储。
后面的三个可以自己设置相对应的地址,这里我选择放到了之前建立的文件夹下,方便管理,以上关于redis的安装即设置就成功了。
//检查是否设置成功
chkconfig --list | grep redis
在springboot的项目中对于redis进行相关的配置
首先在resource 文件夹下建立 application.properties的配置文件
#redis
redis.host=你所配置redis的云服务器的ip
redis.port=6379
redis.timeout=3
redis.password=之前在redis.conf中所设置的密码
redis.poolMaxTotal=10
redis.poolMaxldle=10
redis.poolMaxWait=3
接着可以创建一个文件夹中里面创建这三个文件
读取配置文件中的配置:RedisConfig
@Component
@ConfigurationProperties(prefix = "redis")
public class RedisConfig {
private String host;
private int port;
private int timeout;//秒
private String password;
private int poolMaxTotal;
private int poolMaxIdle;
private int poolMaxWait;//秒
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public int getTimeout() {
return timeout;
}
public void setTimeout(int timeout) {
this.timeout = timeout;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getPoolMaxTotal() {
return poolMaxTotal;
}
public void setPoolMaxTotal(int poolMaxTotal) {
this.poolMaxTotal = poolMaxTotal;
}
public int getPoolMaxIdle() {
return poolMaxIdle;
}
public void setPoolMaxIdle(int poolMaxIdle) {
this.poolMaxIdle = poolMaxIdle;
}
public int getPoolMaxWait() {
return poolMaxWait;
}
public void setPoolMaxWait(int poolMaxWait) {
this.poolMaxWait = poolMaxWait;
}
}
建立redis的连接池工厂RedisPoolFactory
@Service
public class RedisPoolFactory {
@Autowired
RedisConfig redisConfig;
@Bean
public JedisPool jedisFactory(){
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(redisConfig.getPoolMaxIdle());
poolConfig.setMaxTotal(redisConfig.getPoolMaxTotal());
poolConfig.setMaxWaitMillis(redisConfig.getPoolMaxWait() * 1000);
JedisPool jp = new JedisPool(poolConfig,redisConfig.getHost(),redisConfig.getPort(),
redisConfig.getTimeout() * 1000,redisConfig.getPassword(),0);
return jp;
}
}
建立redis的服务RedisService
@Service
public class RedisService {
@Autowired
private JedisPool jedisPool;
/**
* 获取单个对象
* @param prefix
* @param key
* @param clazz
* @param <T>
* @return
*/
//简单的get示例
public <T> T get(String key, Class<T> clazz){
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
String s = jedis.get(key);
T t = StringToBean(s, clazz);
return t;
}finally {
returnTopll(jedis);
}
}
}