-
JAVA WEB中的redis应用
- 简介
- 概念:redis是一款高性能的NOSQL系列的非关系型的数据库
- NoSQ:L泛指非关系型的数据库“ :non-relational”,它们不保证关系数据的ACID特性(数据之间没有耦合)。
- 特点:易扩展、大数据量,高性能、具有非常高的读写性能、数据库的结构简单
- 类型:redis 、hbase
- 存储:key :value 并且存储在内存中(存储在内存中,读取速度更快) (关系型数据库则是存储到硬盘中,IO存取、读取的效率相对较低)
- 使用:关系型与非关系型的数据联合使用
- 使用缓存的思想(将经常使用并且不太经常发生变化的数据存储在缓存中)
- 从缓存中获取数据
- 有数据:
- 直接从缓存中返回数据
- 没有数据
- 从数据库中查询相应的数据
- 将数据放入相应的缓存之中
- 返回数据
- 有数据:
- 缓存的选择:针对于分布式的项目部署,针对于多台电脑,使用redis(非关系型数据库),可以部署独立、部署简单的机器。
- 从缓存中获取数据
- 使用缓存的思想(将经常使用并且不太经常发生变化的数据存储在缓存中)
- 缺点
- 维护工具有限
- 不支持对sql的支持,每个软件之间的用法不太一样,学习成本比较大
- 不支持非关系型数据对事物的处理(回滚)
- SQL与nosql数据库是互补的,将数据存储在SQL(关系型数据库),在nosql中备份存储关系型数据库的数据
- 类型:
- 键值对存储数据库(key-value)(redis)
- 列存储数据库
- 文档型数据库
- 图形数据库
- 应用场景:
- 缓存
- 聊天室好友列表
- 任务队列 (秒杀、抢购、)
- 应用商店排行榜
- 网站访问统计
- 数据过期处理
- 分布式集群
- redis的下载安装
- 官网:redis.io
- 解压可以直接使用
- 核心配置文件
- 客户端的执行文件
- 服务器端的执行文件
- 使用
- 直接双击执行文件既可以进行使用
- 使用:
- 命令的方式
- redis的数据结构
- 存储的数据是(key,value)格式的数据
- key都是字符串
- value值有五种数据结构
- 字符串:string
- 哈希类型:hash (map的格式)(又可以存储键值对(name:lisi)age,24)
- 列表类型:list (linkedlist)
- 集合类型:set (hashSet)
- 有序集合类型:sortedset (不允许重复元素)(会自动进行排序)

- 存储的数据是(key,value)格式的数据
- 使用命令行进行相应的操作
- 字符串string
- 存储 :key value
- 获取:get key
- 删除:del key
- redis中文网中有着相应的教程
- 哈希类型(hash)
- 存储:hset key field value
- 获取: hget key field(获取指定的值)
- hgetall key (可以获取到键中对应的所有hash值)
- 删除:hdel key field
- 列表类型(list)可以添加一个元素到列表的头部或者尾部
- 存储(添加)
- lpush(左添加)lpush key value
- rpush(右添加)rpush key value
- 获取(获取头信息或者尾信息)
- 获取指定的元素
- lrange key start end (范围获取)
- 获取指定的元素
- 删除
- lpop key (删除列表最左边的一个元素,并将元素进行返回)
- rpop key (删除列表最右边的一个元素,并将元素值进行返回)
- 存储(添加)
- 集合元素 set :不允许重复的元素(存入取出不保证顺序)
- 存储:sadd key value
- 获取:smemenbers key
- 删除 srem key value
- 有序集合sortedset(排序有序)(操作也相对复杂一些)
- 存储
- 获取:(获取所有)
- 删除:删除指定元素
- 通用操作
- 查询所有的操作 :key*
- 获取键对应的value的类型:type key
- 删除指定的key value :del key
- 字符串string
- 持久化
- 含义:redis是内存的数据库,(临时的),当redis服务器重启或者电脑重启,数据会丢失,因此将redis中的数据保存到硬盘中,称为数据的持久化保存
- 持久化机制
- RDB:默认方式:不需要进行相应的配置,模式使用这种机制
- 在一定的时间间隔中,检测key的变化情况
- AOF:日志记录的方式,记录每一条命令的操作,可以每一次命令操作后,持久化操作
- 对性能的影响较大
- RDB设置方式
- 在压缩文件中有配置文件,在配置文件中设置相应的属性

- 在这段配置中编辑配置文件
- save 900 1:在 15min内有一个key改变就保存一次
- save 300 10:在5min中一次有10个key发送改变就保存一次
- save 60 10000:在1分钟中有10000key发送改变就保存一次
- 设置时间和数量是根据服务器的性能进行设置,一般不随便调整
- 修改完配置文件以后,需要他们控制台重新启动相关的文件(server、window.conf )再启动相应的客户端
- 当数据发送相应的改变,则会在相应的文件夹中生成一个dump.rdb的文件
- 在压缩文件中有配置文件,在配置文件中设置相应的属性
- AOF配置
- 编辑配置文件 修改成yes(no 表示关闭aof持久化机制)

- 修改下面的注释
- # appendfsync always:每一次操作都进行持久化
- appendfsync everysec 每个一秒进行持久化
- # appendfsync no 不进行持久化
- 修改好相应的设置后,会生产一个aof的持久化文件,可以用于下次的使用
- 编辑配置文件 修改成yes(no 表示关闭aof持久化机制)
- RDB:默认方式:不需要进行相应的配置,模式使用这种机制
- redis的数据结构
- 使用java客户端进行操作
- jedis:java操作数据库的工具,
- 使用步骤:下载jedis的使用jar
- 获取连接(new Jedis (主机名,端口))
- 若使用空参构造,默认使用“localhost”为主机号、6379的端口值
- 操作 set、get等操作,与redis相同
- 关闭连接Jedis.close()
- 获取连接(new Jedis (主机名,端口))
- jedis操作redis中的各种数据结构(value中有5种结构)
- 字符串
- jedis存在setex方法,可以用来设置指定过期时间的key value
- setex(activecode ,20,“hehe”)第一个表示启动激活,20表示20s的过期时间,hehe表示存入的内容。
- 表示含义:存入hehe,20s后自动删除
- 用途:用于存储有时效性的激活码(短信验证码)
- hash类型
- 获取指定hget
- 存储hset
- 获取所有 hgetall(注意,使用该方法后得到的是对象的集合形式(map))使用keyset进行遍历
- list类型
- 存储(左/右存储)lpush、rpush("key",value)(其中value的值可以存储多个)
- 例如jedis.lpush(“mylist”,"a","b","c");
- 获取lrange/rrange(左/右取出)
- 存储(左/右存储)lpush、rpush("key",value)(其中value的值可以存储多个)
- set类型
- orderedset
- 字符串
- jedis的连接池(自带的)jedispoll
- 创建连接池对象
- 创建对象时,可以通过引入相应的配置文件进行相应参数的设置(最大连接数、连接时间间隔等)
- 为了解耦,可以使用priority配置文件配置连接池的参数,提供获取连接的方法
- 调用相应的方法(getResource()方法获取jedis的连接)
- 关闭(并非是关闭,而是将连接归还到连接池中,等待别人复有)
- 创建连接池对象
- 命令的方式
- 概念:redis是一款高性能的NOSQL系列的非关系型的数据库
- 简介
Redis
最新推荐文章于 2026-01-04 17:57:02 发布
173万+

被折叠的 条评论
为什么被折叠?



