当前位置:   article > 正文

springboot使用Redis完整过程详解及常见问题总结_为什么springboot在测试里对redis操作 本地没有被修改

为什么springboot在测试里对redis操作 本地没有被修改

一.背景:项目中需要使用到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引入依赖:

 

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-data-redis</artifactId>
  4. </dependency>

 

b.approtites.xml配置文件

c.redis工具类

 

  1. @Component
  2. public class RedisComponent {
  3. //操作字符串的template,StringRedisTemplate是RedisTemplate的一个子集
  4. @Autowired
  5. private StringRedisTemplate stringRedisTemplate;
  6. private Logger logger= LoggerFactory.getLogger(RedisComponent.class);
  7. //RedisTemplate可以进行所有的操作
  8. @Autowired
  9. private RedisTemplate<Object,Object> redisTemplate;
  10. public void set(String key,String value){
  11. ValueOperations<String,String> ops=this.stringRedisTemplate.opsForValue();
  12. boolean bExistent=this.stringRedisTemplate.hasKey(key);
  13. if(bExistent){
  14. logger.info("this key is bExistent!");
  15. }else{
  16. ops.set(key,value);
  17. }
  18. }
  19. public String get(String key){
  20. return this.stringRedisTemplate.opsForValue().get(key);
  21. }
  22. public void del(String key){
  23. this.stringRedisTemplate.delete(key);
  24. }
  25. public void sentinelSet(String key,Object object){
  26. redisTemplate.opsForValue().set(key,object);
  27. }
  28. public String sentinelGet(String key){
  29. return String.valueOf(redisTemplate.opsForValue().get(key));
  30. }
  31. }

 

 

 

d.测试类

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/658570
推荐阅读
相关标签
  

闽ICP备14008679号