【JavaEE】进阶 · 个人博客系统(7)
yum -y install redis

redis-server /etc/redis.conf &

redis-cli

Ctrl C 可关闭这个进程(万能地杀死进程)

灰色部分为提示


灰色部分为提示

正常情况下:
- 键值对存在,行为是覆盖!
对于windows,一般是个人电脑,为项目的开发环境,所以本身是不需要所谓的缓存的,所以Redis官网现在没有支持windows的版本,也无所diao味
Releases · microsoftarchive/redis (github.com)
而我们要用到的是一个,可视化客户端,便于观察Redis缓存内部情况,我们要进行远程连接,这个Redis是我们刚才下载的那个!
这个软件可以连接远程Redis,进行观察,操作等等…

双击打开:



当然,你第一次使用会遇到这种情况,也很正常!

我们需要进行一些配置上的操作!
- 进入redis 配置文件的编写模式,redis 配置文件就是linux 下的 /etc/redis.conf ;
- 将 redis.conf 中的 “bind 127.0.0.1”注释掉;
- 将 redis.conf 中的“protected-mode yes” 改为“protected-mode no”;
- 保存并退出
- 使用命令“redis-cli shutdown”先关闭 redis 服务,再使用“redis-server /etc/redis.conf &”启动 redis 服务。

vim redis.conf
- 这个位置是光标所在行
找到第61行,注释掉此行:

找到第80行,yes改为no

保存并退出:

关闭并开启redis:
redis-cli shutdown

redis-server /etc/redis.conf &
# &代表后台允许

现在可以连接Redis了吗?

还是不行,这是因为我们的服务器的防火墙没有对这个端口放行!


确认后:

重新尝试远程连接:

成功啦啦啦啦啦😀
测试用例:
redis-cli
- 1
set name xiaoma
- 1
set password 123456
- 1
set id 6
- 1
这个操作不支持多行复制过去操作~
id:
name:
password:

本文章不涉及其他Redis的数据类型,仅仅是[key字符串]对[value字符串]

查看我们的机器里是否存在该键值对:



查看我们的机器里是否存在该键值对:

框架:


如果你的版本不支持这个框架,可以将版本号改为:2.6.13(version标签内)
#这个代表机器的redis的几个数据库里的第几个
spring.redis.database=1
#redis在机器里的端口号
spring.redis.port=6379
#这个是你的主机号的ip,如果在本地可以写127.0.0.1
spring.redis.host=175.178.62.164
#密码
spring.redis.password=
# 以下可省略 (有点像线程池的创建)
spring.redis.lettuce.pool.min-idle=5
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=1ms
spring.redis.lettuce.shutdown-timeout=100ms
参考第178行(可能):

在可视化客户端也可以可以见到十六个数据库:DB0 - DB15,Redis也被称为非关系型数据库~

没密码就不用设置,或者设置为空
以我们习以为常的方式:属性注入
@Autowired
private RedisTemplate redisTemplate;
通过调用相应的方法,获取需要用到的redis操作器:

这里选择opsForValue,就是我们所见的普通键值对类型了,key为String
@RequestMapping("/set_val")
public void setVal(@RequestParam("key") String key, @RequestParam("value") String value) {
redisTemplate.opsForValue()
.set(key, value);
//set的重载方法是可以设置其他属性的
}
@RequestMapping("/get_val")
public String getVal(@RequestParam("key") String key) {
return (String) redisTemplate.opsForValue()
.get(key);
//get的重载方法是可以设置其他属性的
}
设置:

获值:

设置:

获值:

可视化客户端查看:

对于Redis的其他操作就不在这里讲解了,感兴趣的同学自行学习~
我们可以通过刚才简单的set和get操作,进行我们的开发,不过太麻烦了~
虽然原生写法也是框架写法,但是这里说的框架写法,是在这个基础上,再加一个框架,更加方便的开发!
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-redisartifactId>
dependency>
<dependency>
<groupId>org.springframework.sessiongroupId>
<artifactId>spring-session-data-redisartifactId>
dependency>
下面那个在IDEA的spring项目的那个依赖搜索里找不到(虽然搜索到了两个,但是另外一个并不是我们想要的!),得手动添加,并刷新,如果国内源找不到,将版本号调低:2.6.13(version标签内的值)
# Redis相关操作
spring.session.store-type=redis
server.servlet.session.timeout=1800
spring.session.redis.flush-mode=on_save
spring.session.redis.namespace=spring:session
spring.redis.host=175.178.62.164
spring.redis.password=
spring.redis.port=6379
这两步之后,我们的项目的Session会话就默认的持久化到了Redis里了~
如果redis在本地,就可以写127.0.0.1
可以配置Session持久化到MySQL,感兴趣的同学可以自行学习!
实现这个Serializable接口即可,框架就知道怎么序列化这个对象了!

刚才完成了~
包名自定义的方式:

打包:


部署到云服务器:
ps -ef|grep java
- 1
kill 19548
- 1
rm -rf demo-0.0.1-SNAPSHOT.jar nohup.out
- 1
nohup java -jar myblog.jar &
- 1
nohup代表不挂断的运行&代表后台运行
访问网站登录:

可以进入需要登录校验的页面😀

可视化客户端出现了序列化后的session,我看不懂无所谓,那个框架看得懂 😀

这样就说明成功啦!
虽说是“最后的升级”,是因为这是我的讲解的最后一个升级了,但是还有更多的升级由你来发挥😀!!!
文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆!代码: