Redis
1.简介
- Redis是开源免费,遵循BSD协议,是一个高性能的key-value的NoSQL(Not Only SQL)数据库
- NoSQL泛指非关系型的数据库
- 不遵循SQL标准
- 不支持ACID
- 远超于SQL的性能
2.特点
存储非结构化的数据:k-v方式存储数据
弱事务:但一般能保证最终一致
在内存中存储数据,但能自动持久化
查询性能非常哈
不支持SQL,需要使用特定的命令
支持集群,数据分片,扩展容易
Redis就是一个在内存中,存储k-v格式数据,支持自动持久化的NoSQL型数据库
使用场景
- 对数据高并发的读写
- 海量数据的读写
- 对数据高可扩展性的
不适用场景 - 需要事务支持
基于sql的结构化查询存储,处理复杂的关系
3.安装
4.数据类型
5.配置文件
6.发布和订阅
7.Jedis操作
8.事务和锁机制
9.持久化操作
10.主从复制
11.集群
12.缓存
13.分布式锁
Redis开发中的应用
典型应用:
需要持久化,但对事务要求不高的数据:购物车
充当应用中的缓存
对tomcat集群的session进行管理
Redis的安装
Linux系统
1.上传redis-3.x.x.tar.gz到Linux虚拟机的/opt文件夹
2.安装gcc
yum install -y gcc
3.解压缩redis-3.x.x.tar.gz
tar xzvf redis-3.2.9.tar.gz
4.进入到redis跟目录,进行编译,安装
cd redis-3.2.9
make
make install
5.将redis-3.x.x.tar.gz/redis.conf复制到/etc/redis/目录下
mkdir -p /etc/redis/
cp redis.conf /etc/redis/
6.启动redis
redis-server /etc/redis/redis.conf
端口号6379
Redis客户端的使用
在xshell中复制一个连接虚拟机的窗口
1.打开客户端
redis-cli
2.关闭redis数据库
shutdown
3.关闭客户端
exit
String类型数据的操作
Redis是k-v数据格式的数据库,v有多种类型,下面演示v为字符串的操作
1.增
设置名称为张三
set name zhangshan
2.删
del name
flushdb
清空所有数据
3.改
set name lisi
set age 16
4.查
keys * 查看所有的key
get name
get age
如果不存在则返回(nil)
5.注意
字符串外的单引号或双引号可以省略(如果有特殊符号则需要加上,例:set name 'zhang san')
命令结束直接回车,不用添加分号
Java操作Redis
1.Jedis是Redis官方推荐的Java连接开发工具,通过Jedis操作Redis数据库
2.准备工作
1.关闭linux虚拟机防火墙
systemctl stop firewalld(查看防火墙状态systemctl status firewalld)
2.编辑 /etc/redis/redis.conf
vi /etc/redis/redis.conf
bind 127.0.0.1 reids服务器的ip(redis安装的虚拟机的ip,通过这个ip访问redis)
3.重启redis服务器让配置文件生效
Ctrl + c
redis-cli
3.导入依赖
redis.clients
jedis
2.9.0
4.编码
@Test
public void testSet(){
//创建连接
}
问题:
1.统一管理多台服务器的session,实现单点登陆
|