reids(缓存,reids下载,安装 测试)

什么是缓存:缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行,缓存数据存放内存条

什么是java内置缓存:将数据存放在jvm中,关闭服务,则缓存数据清空,可以用一个static Map 来实现一个简单的java缓存:

package com.example.demo;

import java.util.HashMap;
import java.util.Map;

public class MapCache {
    public static Map map = new HashMap<>();

    public void mapAdd(Object key, Object value) {
        map.put(key, value);
    }

    public Object get(Object key) {
        return map.get(key);
    }
}

缓存中有了解到的有:

  1. Oscache
    OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。
  2. EhCache
    EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。

OsCache与EhCache区别

ehcache 主要是对数据库访问的缓存,相同的查询语句只需查询一次数据库,从而提高了查询的速度,使用spring的AOP可以很容易实现这一功能。

oscache 主要是对页面的缓存,可以整页或者指定网页某一部分缓存,同时指定他的过期时间,这样在此时间段里面访问的数据都是一样的。

java内置缓存缺点:内存溢出(static修饰),没有持久化(重启以后数据清空丢失),jvm缓存在多态服务器的时候不能数据共享,线程安全问题(多个线程操作共享变量的时候 都可能出现)

使用jvm缓存 存在很多缺陷 推荐使用Nosql(非关系型数据库) 项目中 使用的是redis,其余小组用的是mogodb

  • 什么是Nosql:NoSQL 是 Not Only SQL 的缩写,意即"不仅仅是SQL"的意思,泛指非关系型的数据库。强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS。NoSQL产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能
  • NoSQL产品: Redis、mongodb MembaseHBase
  • 产品比较:

    Redis 与Membase区别

    Redis支持数据的持久化,可以将数据存放在硬盘上。

    Memcache不支持数据的之久存储。

    Redis数据类型丰富,支持set liset等类型

    Memcache支持简单数据类型,需要客户端自己处理复制对象

什么是redis: Redis是一种开源(BSD许可)、内存中的数据结构存储,用作数据库、缓存和消息代理。它支持数据结构,如字符串、散列、列表、集合、带范围查询的排序集、位图、超loglogs、带半径查询的地理空间索引和流。Redis具有内置的复制、Lua脚本、LRU退出、事务和不同级别的磁盘持久性,并通过Redis Sentinel和使用Redis集群的自动分区提供高可用性。

Redis

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

Redis 与其他 key - value 缓存产品有以下三个特点:

Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

Redis支持数据的备份,即master-slave模式的数据备份。

Redis应用场景

主要能够体现 解决数据库的访问压力。

例如:短信验证码时间有效期、session共享解决方案

Redis优势

性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Redis与其他key-value存储有什么不同?

Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。

Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

redis的下载和安装(先说windows版本的):

  1. https://redis.io/download或者https://github.com/MicrosoftArchive/redis/releases
  2. 下载解压以后,新建批处理文件start.bat 启动内容 redis-server.exe  redis.windows.conf
  3. 启动成功,默认断山口6379 以上启动不是后台启动,关闭窗口 则直接关闭 redis了
  4. 测试 redis 在redis目录下找到redis-cli.exe 文件 双击 启动
  5. 修改密码 可以在redis.windows.conf文件中修改 自己所需要的密码 (注意不要有空格)
  6. 登录密码 AUTH 密码  我的是 auth redis123 ok表示登录成功

  7. 测试添加 获取数据

  8. windons下载安装测试redis 成功
  9. 分享关于缓存的一篇内容:原文:https://blog.csdn.net/zhengzhaoyang122/article/details/82184029

缓存穿透、缓存击穿、缓存雪崩和缓存刷新。

【1】、缓存穿透:缓存穿透是说收到一个请求,但是该请求缓存中不存在,只能去数据库中查询,然后放进缓存。但当有好多请求同时访问同一个数据时,业务系统把这些请求全发到了数据库;或者恶意构造一个逻辑上不存在的数据,然后大量发送这个请求,这样每次都会被发送到数据库,最总导致数据库挂掉。
     解决的办法:对于恶意访问,一种思路是先做校验,对恶意数据直接过滤掉,不要发送至数据库层;第二种思路是缓存空结果,就是对查询不存在的数据也记录在缓存中,这样就可以有效的减少查询数据库的次数。非恶意访问,结合缓存击穿说明。
    【2】、缓存击穿:上面提到的某个数据没有,然后好多请求查询数据库,可以归为缓存击穿的范畴:对于热点数据,当缓存失效的一瞬间,所有的请求都被下放到数据库去请求更新缓存,数据库被压垮。
      解决的办法:防范此类问题,一种思路是加全局锁,就是所有访问某个数据的请求都共享一个锁,获得锁的那个才有资格去访问数据库,其他线程必须等待。但现在大部分系统都是分布式的,本地锁无法控制其他服务器也等待,所以要用到全局锁,比如Redis的setnx实现全局锁。另一种思想是对即将过期的数据进行主动刷新,比如新起一个线程轮询数据,或者比如把所有的数据划分为不同的缓存区间,定期分区间刷新数据。第二个思路与缓存雪崩有点关系。
    【3】、缓存雪崩:缓存雪崩是指当我们给所有的缓存设置了同样的过期时间,当某一时刻,整个缓存的数据全部过期了,然后瞬间所有的请求都被抛向了数据库,数据库就崩掉了。
      解决的办法:解决思路要么是分治,划分更小的缓存区间,按区间过期;要么给每个key的过期时间加一个随机值,避免同时过期,达到错峰刷新缓存的目的。
    【4】、缓存刷新:既清空缓存 ,一般在insert、update、delete操作后就需要刷新缓存,如果不执行就会出现脏数据。但当缓存请求的系统蹦掉后,返回给缓存的值为null。


原文地址:https://www.cnblogs.com/920913cheng/p/10368903.html

时间: 2024-08-29 03:22:46

reids(缓存,reids下载,安装 测试)的相关文章

MongoDB下载安装测试及使用

1.下载安装 64位:mongodb-win32-x86_64-enterprise-windows-64-2.6.4-signed.msi http://downloads.mongodb.com/win32/mongodb-win32-x86_64-enterprise-windows-64-2.6.4-signed.msi?_ga=1.238525191.607472782.1411452026 32位:mongodb-win32-i386-2.6.5.zip https://fastdl

缓存代理twemproxy安装测试

twemproxy的安装要求autoconf的版本在2.64以上,需要先安装新版autoconf autoconf安装 wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz tar zxvf autoconf-2.69.tar.gz  cd autoconf-2.69 ./configure  make && make install cd .. twemproxy的安装 git clone https://github.com

RAMPS1.4 3D打印控制板:软件下载\连接\安装\测试

RAMPS1.4 3D打印控制板:软件下载\连接\安装\测试 特别说明: 电源接反,电机驱动板接反将有可能烧毁芯片和电路,请再三确认后再进行通电. 如何使用: 1.需要用到的模块或器件: Arduino Mega2560 主控板(该套件包含):这是3d打印机的大脑,负责控制整个打印机来完成特定的动作,如打印特定的文件等: RAMPS1.4 (该套件包含):这是上面主控板的拓展板,有它是为了更好的与其它硬件进行连接和控制的,起到过渡桥梁的作用: A4988步进电机驱动板(该套件包含):这是用来连接

Redis集群方案,Codis安装测试

1,关于豌豆荚开源的Codis Codis是豌豆荚使用Go和C语言开发.以代理的方式实现的一个Redis分布式集群解决方案,且完全兼容Twemproxy.Twemproxy对于上一层的应用来说, 连接Codis Proxy(Redis代理服务)和连接原生的Redis服务器没有明显的区别,上一层应用能够像使用单机的 Redis一样对待.Codis底层会处理请求的转发.不停机的数据迁移等工作, 所有底层的一切处理, 对于客户端来说是透明的.总之,可以简单的认为后台连接的是一个内存无限大的Redis服

安装测试知识(待更新)

1.    安装测试 1.1定义 安装测试是指按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环境中或相当于用户使用环境中,进行一步一步的操作完成安装的过程所进行的测试. 1.2安装测试的分类 安装测试可以分为: (1)全新安装,待安装的软件包是完整的,包含了所有的文件. (2)升级版本安装,部分文件构成的软件包.升级安装也可以分为两种,一种是完全替换原来版本,另外一种就是保持多种版本共存. (3)补丁式安装,很小的改动或很少文件的更新. (4)软件版本不变 系统运行环境改变,

mui做的苹果app生成ipa后放到自己的网站上让人下载安装

苹果的APP不通过app store的话就只能是要那个$299的企业签名证书了.这个我还不会搞,没有搞过!!! 别人已经帮忙签名好的ipa,自己再传到自己的服务器上让人下载安装,步骤如下: Hbuider IDE中用MUI开发APP,测试成功后直接用菜单里的生成开发包,苹果那里勾选越狱包,生成,等一会就会有ipa(xxx.ipa)包生成好了 把生成的IPA包发给BOSS好友(他有那个$299的苹果企业账号),他生成签名后的IPA包(xxx-resigned.ipa)给我,怎么生成的其实我并不知道

Vue学习之vue-cli脚手架下载安装及配置

Vue学习之vue-cli脚手架下载安装及配置:https://www.cnblogs.com/clschao/articles/10650862.html 1. 先下载node.js,下载地址:https://nodejs.org/en/download/ 找个目录保存,解压下载的文件,然后配置环境变量,将下面的路径配置到环境变量中. 由于 Node.js 中默认安装了 npm,所以不用额外配置就能在全局命令中使用 npm命令,如果要使用自己安装的 npm 时,如 cnpm ,那么就需要像上面

nginx之旅第一篇:nginx下载安装、nginx配置文件详解、nginx默认网站

一.nginx下载安装 版本nginx 1.15.5 系统环境centos7.5(本机ip192.168.199.228) 关闭selinux 和防火墙firewall 1.下载 wget http://nginx.org/download/nginx-1.15.5.tar.gz -P /usr/src 2.安装 安装大概过程 配置---编译---安装 配置 1)检查环境 是否 满足安装条件 依赖解决 2)指定安装方式 配置文件 命令文件 各种文件放哪里 开启模块功能[内 置模块 三方模块] 3

如何将yum下载安装的包存起来,留着以后用

1.首先,yum下载安装软件时,那些软件包缓存位置为: /var/cache/yum 2.修改yum的配置文件: # vi /etc/yum.conf 会看到头三行代码为 [main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 将这里的值更改为1 OK,接下来用yum安装东西后,你可以从/var/cache/yum目录下找到并把自己安装的软件包保存备用了, 3.另外: yumdownloader --resolve --d