赞
踩
一.背景:项目中需要使用到Redis做缓存 (ide:IDEA redis服务器:腾讯centos7)
二.步骤:
1.服务器上安装redis
a.执行指令:$ wget http://download.redis.io/releases/redis-4.0.5.tar.gz
b.解压:$ tar -xzvf redis-4.0.5.tar.gz(此处注意一定不要解压到根目录,可以解压到自己创建的文件夹下面如:/urs/software/redis,否则会执行有错接下来)
c.进入解压后的文件夹: $ cd redis-4.0.5
d.编译:$ make(编译之后即可通过/redis-4.0.5/src/redis-server 启动redis)
tip:执行make的时候可能会编译报错,注意观察错误信息的话你会发现gcc command not found,意味着你需要在机器上安装gcc编译器啦。最简单的就是通过yum安装啦!
e.执行指令启动redis:$ redis安装目录/src/redis-server
f.执行命令启动redis客户端:$ redis安装目录/src/redis-cli
redis>set foo bar
OK
redis>get foo
"bar"
至此,你已成功安装redis到服务器,但是还需要一些配置才能更好的使用redis。
2.redis配置(主要就是通过修改安装目录redis-4.0.5下的redis.conf文件中的参数实现redis配置)
a.修改daemonize配置项为yes,使得redis进程在后台运行
b.将配置文件中的bind 127.0.0.1配置项注释,使得可以通过外部网络连接redis使用(腾讯云主机后台配置安全组,允许6379端口,linux防火墙也要开启响应端口)
c.修改protected-mode no,设置其保护模式,否则不能正常连接
d.通过启动redis 执行>config set requirepass "123456" >auth 123456 (只能设置一次,redis重启后还得重新设置密码)(此处设置的密码即为springboot配置redis中的要填的那个密码)
e.$ echo"/usr/local/bin/redis-server /etc/redis.conf" >>/etc/rc.local (为了能让Redis在服务器重启之后自动启动,需要将启动命令写入开机启动项)
(tip:redis.conf参数选项
daemonize:是否以后台daemon方式运行pidfile:pid文件位置
port:监听的端口号
timeout:请求超时时间
loglevel:log信息级别
logfile:log文件位置
databases:开启数据库的数量
save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression:是否使用压缩
dbfilename:数据快照文件名(只是文件名)
dir:数据快照的保存目录(仅目录)
appendonly:是否开启
appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
appendfsync:appendonlylog如何同步到磁盘。三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步
)
3.springboot配置redis
a.pom.xml引入依赖:
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-redis</artifactId>
- </dependency>
b.approtites.xml配置文件
c.redis工具类
- @Component
- public class RedisComponent {
- //操作字符串的template,StringRedisTemplate是RedisTemplate的一个子集
- @Autowired
- private StringRedisTemplate stringRedisTemplate;
- private Logger logger= LoggerFactory.getLogger(RedisComponent.class);
- //RedisTemplate可以进行所有的操作
- @Autowired
- private RedisTemplate<Object,Object> redisTemplate;
- public void set(String key,String value){
- ValueOperations<String,String> ops=this.stringRedisTemplate.opsForValue();
- boolean bExistent=this.stringRedisTemplate.hasKey(key);
- if(bExistent){
- logger.info("this key is bExistent!");
- }else{
- ops.set(key,value);
- }
- }
- public String get(String key){
- return this.stringRedisTemplate.opsForValue().get(key);
- }
- public void del(String key){
- this.stringRedisTemplate.delete(key);
- }
-
- public void sentinelSet(String key,Object object){
- redisTemplate.opsForValue().set(key,object);
- }
- public String sentinelGet(String key){
- return String.valueOf(redisTemplate.opsForValue().get(key));
- }
-
- }
d.测试类
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。