一.Redis简介

Redis是以Key-Value形式进行存储的NoSQL数据库,C语言进行编写的。平时操作的数据都在内存中,效率特高,读的效率110000/s,写81000/s,所以多把Redis当做缓存工具使用。同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

对于上述提到的NoSQL数据库,常见NoSQL数据库:memcached :键值对,内存型数据库,所有数据都在内存中。Redis:和Memcached类似,还具备持久化能力。HBase:以列作为存储。MongoDB:以Document做存储。

二、Redis常用五大类型

Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储,它还支持数据的备份,即master-slave模式的数据备份,同样Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。Redis支持的五大数据类型包括String(字符串 用法: 键 值),Hash(哈希 类似Java中的 map 用法: 键 键值对),List(列表 用法:键 集合 不可以重复),Set(集合 用法:键 集合 可以重复),Zset(sorted set 有序集合 用法: 键 值 值)

三、Redis常用命令

可参考https://www.redis.net.cn/order/

四、Redis不仅是内存型数据库,还有持久化能力,持久化策略有两种:RDB、AOF。

rdb文件是一个紧凑文件,直接使用rdb文件就可以还原数据。数据保存会由一个子进程进行保存,不影响父进程。恢复数据的效率要高于aof。缺点就是:每次保存点之间导致redis不可意料的关闭,可能会丢失数据。由于每次保存数据都需要fork()子进程,在数据量比较大时可能会比较耗费性能。

AOF默认是关闭的,需要在配置文件中开启AOF。Redis支持AOF和RDB同时生效,如果同时存在,AOF优先级高于RDB(Redis重新启动时会使用AOF进行数据恢复)。监听执行的命令,如果发现执行了修改数据的操作,同时直接同步到数据库文件中。相对RDB数据更加安全。缺点:相同数据集AOF要大于RDB。相对RDB可能会慢一些。可以通过修改redis.conf,可将appendonly修改为yes,appendfilename "appendonly.aof"。

五、Redis主从复制

支持集群功能,为保证单一节点可用性,支持主从复制功能。每个节点有N个复制品,其中一个复制品是主,另外N-1 复制品是从,即支持一主多从:一个主可有多个从,而一个从又可以看成主,它还可以有多个从。优点是:(1)增加单一节点健壮性,提升整个集群稳定性。(Redis中当超过1/2节点不可用时,整个集群不可用)。(2)从节点可以对主节点数据备份,提升容灾能力。读写分离。(3)在redis主从中,主节点一般用作写(具备读的能力),从节点只能读,利用这个特性实现读写分离,写用主,读用从。

一主多从搭建:

  • 新建目录:madir /usr/local/replica
  • 复制目录:把之前安装redis单机中的bin目录复制一下,cp -r /usr/local/redis/bin /usr/local/replica/master\ cp -r /usr/local/redis/bin /usr/local/replica/slave1

    cp -r /usr/local/redis/bin /usr/local/replica/slavel2
  • 修改从的配置文件 。修改两个从的redis.conf,制定主节点ip和端口,并修改自身端口号防止和其他redis冲突。vim /usr/local/replica/slavel/redis.conf * 指定主节点ip和端口号 replicaof ip.port
  • 修改完之后,启动redis实例:cd /usr/local/replica vim startup.sh在文件添加三个redis实例:如: ./redis-server redis.conf;赋予权限:chmod a+x startup.sh;开启:./startup.sh; 查看启动状态:ps -ef|grep redis;测试一下:cd /usr/local/replica/master/; ./redis-cli;在进入到slave查看数据是否同步。cd /usr/local/replica/slavel; ./redis -cli -p 6380

六、哨兵

用于控制上述的主从,当主宕机,节点不具备写能力,让一个从变成主,使整个节点继续工作,Redis哨兵就是帮助控制整个节点,干这个事情的。Redis支持但哨兵和多哨兵,单哨兵只要哨兵发现master宕机,直接选取一个master;多哨兵是根据人为设定,当达到一定数量哨兵才认为master宕机,在进行重新选主。

七、集群

当集群中超过或等于1/2节点不可用时,整个集群不可用。为了搭建稳定集群,都采用奇数节点。建立集群时,需要借助ruby脚本实现集群,在redis5中可以使用自带的redis-cli实现集群功能。集群测试的命令:./redis-cli -p port -c。

八、Jedis

Redis给java语言提供客户端API,称之为Jedis。Jedis API特别简单,基本都是创建对象调用方法。

单机版

点击查看代码
public void testStandalone(){
Jedis jedis = new Jedis("ip",port);
jedis.set("name","m-standalone");
String value = jedis.get("name");
System.out.println(value);
}

带有连接池

点击查看代码
public void testPool(){
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(20);
jedisPoolConfig.setMaxIdle(5);
jedisPoolConfig.setMinIdle(3);
JedisPool jedisPool = new JedisPool(jedisPoolConfig,"ip",port);
Jedis jedis = jedisPool.getResource();
jedis.set("name","my-pool");
String value = jedis.get("name");
System.out.println(value);
}

九、springboot整合Redis

十、Redis作为缓存使用

全网最全Redis学习的更多相关文章

  1. (zhuan) 深度学习全网最全学习资料汇总之模型介绍篇

    This blog from : http://weibo.com/ttarticle/p/show?id=2309351000224077630868614681&u=5070353058& ...

  2. redis 学习笔记(6)-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

  3. 全网最全ASP.NET MVC 教程汇总

    全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MV ...

  4. Redis 学习笔记4: Redis 3.2.1 集群搭建

    在CenOS 6.7 linux环境下搭建Redis 集群环境 1.下载最新的Redis版本 本人下载的Redis版本是3.2.1版本,下载之后,解压,编译(make): 具体操作可以参考我的博文:R ...

  5. Redis学习笔记(3)——Redis的命令大全

    Redis是一种nosql数据库,常被称作数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted se ...

  6. 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装爬虫框架Scrapy(离线方式和在线方式)(图文详解)

    不多说,直接上干货! 参考博客 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装OpenCV(离线方式和在线方式)(图文详解) 第一步:首先,提示升级下pip 第二步 ...

  7. 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装OpenCV(离线方式和在线方式)(图文详解)

    不多说,直接上干货! 说明: Anaconda2-5.0.0-Windows-x86_64.exe安装下来,默认的Python2.7 Anaconda3-4.2.0-Windows-x86_64.ex ...

  8. 自学MVC看这里——全网最全ASP.NET MVC 教程汇总(转)

    自学MVC看这里——全网最全ASP.NET MVC 教程汇总   MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要 ...

  9. 超全PHP学习资源整理:入门到进阶系列

    PHP是少数几门在语言层面饱受诟病,但在实际开发和应用上却又让人无法撒手的语言之一.就好比路边摊小吃,一遍骂人家不卫生,一遍却又说:真香.所谓接地气,不外如此,大道理不说,PHP光是轮子多.市场占有率 ...

随机推荐

  1. HDFS数据平衡

    一.datanode之间的数据平衡 1.1.介绍 ​ Hadoop 分布式文件系统(Hadoop Distributed FilSystem),简称 HDFS,被设计成适合运行在通用硬件上的分布式文件 ...

  2. NC207028 第k小数

    NC207028 第k小数 题目 题目描述 给你一个长度为 \(n\) 的序列,求序列中第 \(k\) 小数的多少. 输入描述 多组输入,第一行读入一个整数 \(T\) 表示有 \(T\) 组数据. ...

  3. 数学工具类Math

    概述 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.类似这样的工具 类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单 基本运算的方法 ...

  4. BufferedWniter_字符缓冲输出流和BufferedReader_字符缓冲输入流

    java.io.BufferedWriter extends Writer BufferedWriter:字符缓冲输出流 继承自父类的共性成员方法: -void write(int c)写入单个字符 ...

  5. JetBrains系列软件激活

    1.将以下记录加入hosts文件 0.0.0.0 account.jetbrains.com0.0.0.0 www.jetbrains.com 2.激活方式选择licence server,填写以下激 ...

  6. shell脚本函数及数组

    函数介绍: 函数function是由若干条shell命令组成的语句块,实现代码重用和模块话编程. 它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部 ...

  7. 06 app分享功能

    通过某一个点击事件触发confirm弹窗 确定后正式进行分享功能处理 这是一个封装好的分享功能插件 https://ext.dcloud.net.cn/plugin?id=4860 如果自己写的话会很 ...

  8. 图像文本跨模态细粒度语义对齐-置信度校正机制 AAAI2022

    论文介绍:Show Your Faith: Cross-Modal Confidence-Aware Network for Image-Text Matching (跨模态置信度感知的图像文本匹配网 ...

  9. Nginx第三方模块Ngx-dyups安装过程

    Ngx-dyups是什么,能干什么 它是一个Nginx第三方动态Upstream配置模块,可以实现在不重启Nginx情况下动态更新反向代理Upstream表.该模块由淘宝开发团队维护,淘宝自家的Ten ...

  10. AtCoder Beginner Contest 247 E - Max Min // 容斥原理

    原题链接:E - Max Min (atcoder.jp) 题意: 给定一个数组,求满足最大值为X且最小值为Y的区间个数. 思路:容斥原理 因为必须要包含端点,直接求是不容易的.因此考虑去求不一定包含 ...