Redis入门
Redis简介
课程介绍
Redis介绍与安装
掌握Redis的常用命令与数据类型
掌握在Java中的操作
Redis的由来
Redis介绍
Redis是Key-Value型NoSQL数据库
Redis将数据存储在内存中,同时也能持久化到磁盘
Redis常用于缓存,利用内存的高效提高程序的处理速度
Redis特点
速度快
广泛的语言支持
持久化
多种数据结构
主从复制
分布式与高可用
Redis安装与常用配置
在Linux系统中安装Redis
在Windows系统中安装Redis
在Linux系统中安装Redis
这里下载5.0.2的
这就是redis的源代码,再用make进行编译安装;
redis启动成功;
Windows系统安装Redis
https://github.com/MicrosoftArchive/redis
启动命令;conf的核心文件
守护进程方式启动Redis
Redis的常用基本配置
启动redis
按ctrl C 退出服务
关掉终端也会关闭服务,但我们并不想这样,想让他保持在后台。
进入redis的配置
1 | vim redis.conf |
找到守护进程,改为yes:
按i进入编辑模式,修改为yes,再按Esc退出比较模式;
最后按:wq 保存并退出;
再启动服务:
1 | ./src/redis-server redis.conf |
验证redis是否启动成功:
1 | netstat -tulpn |
查看当前系统所占端口
这时关闭再打开终端查看,进程仍在,说明守护进程启动成功,可以在后台进行;
如果要关闭redis;,可以使用kill
1 | kill -9 2844 |
端口就不见了;
但kill过于粗暴,不建议这么使用,后面我们用redis提供的命令进行关闭;
Redis常用基本配置
进入cli命令
exit可以退出命令
关闭redis服务用
1 | ./src/redis-cli shutdown |
这样就不用kill了。
进入配置
1 | vim redis.conf |
建议改掉,免得遭受黑客攻击:
最后输入:wq保存并退出;
启动的logo不见了,它被放到了log里面
尝试cli命令
发现端口号连接不上;
修改端口
1 | ./src/redis-cli -p 6380 |
选择数据库:
15最大。
修改数据库数量:
1 | vim redis.conf |
重启配置生效:
设置密码:
这里被注释了,直接去掉;
默认密码foobared删掉,改成12345;
:wq保存退出;
1 | auth password |
更改数据保存路径:
进入redis.conf
大多情况下不需要修改;
dump.rdb功能是全量保存,防止宕机带来的数据损失;
Redis通用命令
设置存在时间
查看剩余时间
Redis数据类型
String 字符串类型
字符命令
incr和decrby使用得不是特别多,了解一下就好;
删除key用del
Hash 键值类型
Hash命令
List 列表类型
List 命令
Set与Zset集合类型
PS:集合在项目中比较少用。
Set
不能插入相同的值,说明是全局唯一的。
ZSet
Jedis介绍与环境准备
Java客户端-Jedis
Jedis是Java语言开发的Redis客户端工具包
Jedis只是对Redis命令的封装,掌握Redis命令便可轻易上手
先关闭服务器,在进入redis.conf
1 | vim redis.conf |
找到保护模式:
因为开发模式的需要,将其关闭,允许其他主机连接进来。
这里改为0.0.0.0,所有的ip的主机都能访问进来。
注意:开发模式可以这么写,但在线上的时候,千万不要写0.0.0.0,要指名远程主机的ip。
但还要设置防火墙,让防火墙给端口6380的数据通行;
1 | firewall-cmd --zone=public --add-port=6380/tcp --permanent |
permanent设置永久,防止下次打开失效;
重新加载防火墙设置:
1 | firewall-cmd --reload |
用ifconfig查看本机ip:
https://redis.io/resources/clients/
我们用的是Java
这里用Jedis;
https://github.com/redis/jedis
可以用maven进行下载;
Jedis使用入门
IDEA创建maven新工程,加入依赖;
这里端口号错了;
Jedis操作String类型
Jedis操作List类型
Jedis操作Hash类型
Jedis操作List类型
利用Jedis缓存数据
创建实体类:
https://github.com/alibaba/fastjson
fastjson 是一个java语言编写的高性能且功能完善的JSON库,它采用一种“假定有序快速匹配”的算法,把JSON Parse 的性能提升到了极致。
1 | <dependency> |





















































































































