小白学习Redis

一、redis介绍
1.1什么是redis?
redis是一款高性能的NOSQL(非关系型数据库)系列的非关系型数据库。
【关系型数据库和非关系型数据库的区别】
关系型数据库:
1.以数据库表的形式存储
2.数据之间有关系(一对多、多对多、多对一)
3.数据存储在硬盘上
关系型数据库:
1.resid的数据以键值对形式存储(key:value)
2.数据之间没有关系
3.数据存储在内存中

1.2为什么要使用redis?
操作大量关系型数据库时非常耗时,而利用缓存思想,利用redis做缓存来解决这个问题。
1.3缓存思路是什么?
从缓存中获取数据时,如果有数据,就直接返回数据,如果没有数据,就从数据库中获取数据,再将数据放入缓存。
二、redis下载安装
2.1下载
官网:https://redis.io
中文网:http://www.redis.net.cn/
2.2安装
解压直接可以使用:
* redis.windows.conf:配置文件
* redis-cli.exe:redis的客户端
* redis-server.exe:redis服务器端
先运行服务器端,再运行苦户端即可
三、命令操作
3.1 redis的数据结构

redis是以key:value的键值对形式存储数据,key都是字符串,而value有五种不同的存储形式:

  1. 字符串类型string
  2. 哈希类型(hash):map格式(key:value)
  3. 列表类型(list):linkedlist(无序可重复)
  4. 集合类型(set):(无序不可重复)
  5. 有序集合类型(sortedset):(有序不可重复)

3.2通用命令
1. keys * : 查询所有的键
2. type key : 获取键对应的value的类型
3. del key:删除指定的key value
四、redis的持久化
4.1什么是redis的持久化?
redis数据是存在内存中的,当redis服务器或者电脑重启时,内存中的数据就会被释放然后丢失,redis的持久化就是将内存中的数据保存在硬盘文件中。
4.2 redis的两种持久化机制

  1. RDB :不需要配置,redis默认就使用这种机制。在一定的时间间隔中检测kye的变化情况,然后持久化数据。

(1)编辑redis.windwos.conf文件

#   after 900 sec (15 min) if at least 1 key changed //意思是在900秒内有1条数据发生变化就持久化数据
save 900 1

(2)启动redis服务器,并指定配置文件名称

D:\JavaWeb2018\day23_redis\资料\redis\windows-64\redis-2.8.9>redis-server.exe redis.windows.conf
//服务器启动程序  conf文件

启动成功后,当发生持久化时,会将内存中的数据存入到一个rdb格式的硬盘文件中。

  1. AOF:日志记录的方式,每一条数据发生变化就持久化数据,很影响性能,不推荐使用。
    编辑redis.windwos.conf文件
    appendonly no(关闭aof) --> appendonly yes (开启aof)

五、redis在JAVAWEB中的应用

  1. 缓存
    从数据库查询数据时,需要从磁盘中引用数据,这个过程比较漫长,而从redis缓存中取数据时就比较快。
    是否使用redis缓存技术一般考虑以下几个点:
    1)业务数据是否常用(比如最典型的用户登录信息),不常用就没必要用redis,毕竟内存空间限制和成本比磁盘高。
    2)如果写数据多于读数据,也没必要使用redis缓存。
    3)如果存储数据量太大,会给缓存带来很大的压力,没有必要。
  2. 高速读写数据
    在类似春运车票、商品秒杀等业务时,会有大量读取数据的业务请求,如果直接用数据库,很容易造成数据库瓶颈,甚至导致数据库和服务器瘫痪,所以可以使用redis缓存技术来做数据的高速读写。
    先在缓存里做数据的高度读写,满足一定条件后(例如商品秒杀完后),将数据一次性持久化到数据库中。

六、NoSQL为什么不能代替数据库:

  1. NoSQL是把数据存储在内存中,数据很容易丢失,持久化的功能也很有限,不如将数据存在磁盘中稳定。

  2. NoSQL功能有限,无法像关系型数据库一样支持更为复杂的sql运算。

  3. NoSQL的事务性、安全性、可靠性以及可扩展性不如关系型数据库强大。

    参考:https://www.cnblogs.com/BigJunOba/p/9789682.html

七、Jedis和Spring Data Redis
Jedis是Redis官方推荐的Java连接开发工具。
Spring Data Redis是spring家族中的一员,是一个封装了Jedis的框架。
Spring Data Redis与Jedis的关系就是封装与被封装的关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值