Redis
文章平均质量分 80
Redis入门和进阶
如不來
知幻即离,不假方便;离幻即觉,亦无渐次。
展开
-
Redis——发布和订阅
一、概念 发布和订阅是进程间的一种消息通信模式,发送者发送(pub),订阅者接收(sub)消息。二、相关命令命令描述PSUBSCRIBE pattern[pattern1 …]订阅一个或多个符合给定模式的频道PUBSUB subcommand [argument [argument …]]查看订阅与发布系统状态PUBLISH channel messag...原创 2019-08-02 10:50:31 · 123 阅读 · 0 评论 -
Redis——事务
一、Redis的事务 可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入、加塞,一个队列中,一次性、顺序性、排他性的执行一系列命令,一个事务中的所有命令要么都成功要么都失败。二、事务常用命令 下表列出了Redis中事务相关的命令:命令描述DISCARD取消事务,放弃执行事务块内的所有命令EXEC...原创 2019-08-02 10:29:28 · 792 阅读 · 0 评论 -
Redis——持久化
Redis有两种持久化方式:RDB和AOF一、RDB(Redis DataBase) 1、原理:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任...原创 2019-08-01 18:08:14 · 123 阅读 · 0 评论 -
Redis——配置文件redis.conf
一、位置 在Redis的解压目录中,但在实际开发时应将该文件复制一份到/etc目录下,在修改该配置文件时最好拷贝一份到一个新的目录下并修改拷贝的那一份,启动的时候也指定启动修改的那一份。二、参数配置详解 1、Units:单位 ①配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit ②对大小写不敏感 2、INCLUDES:包含 和我们的Struts2配...原创 2019-08-01 16:48:01 · 10132 阅读 · 0 评论 -
Redis——值的数据类型
一、Redis的五大数据类型 1、String(字符串) String是redis最基本的类型,你可以理解成与Memcached一样,一个key对应一个value。 String类型是二进制安全的,意思是redis的String可以包含任何数据。比如jpg图片或者序列化的对象 。 String类型是Redis最基本的数据类型,一个redis中的value字符串最多可以是512M。 ...原创 2019-08-01 15:50:44 · 2120 阅读 · 0 评论 -
Redis——Jedis
1、开启Redis服务,并开启至少一个客户端2、创建工程3、导包commons-pool-1.6.jarjedis-2.1.0.jar4、测试连接:打印出PONG表示连接成功public class TestConn { public static void main(String[] args) { Jedis jedis = new Jedis("127....原创 2019-08-02 16:18:11 · 452 阅读 · 0 评论 -
Redis——主从复制
一、概念 主从复制,主机数据更新后根据配置和策略,自动同步到从机的master/slaver机制,Master以写为主,Slaver以读为主。这么做的好处: ①读写分离,提高性能 ②容灾恢复,提升安全二、配置 原则:配从不配主,修改从机的配置文件,使用slaveof命令指定从属关系。步骤如下: ①复制redis.conf配置文件,同时修改配置文件名,在启动的时候是根据配置文件名启动的,...原创 2019-08-02 16:01:30 · 143 阅读 · 0 评论 -
Redis——Redis介绍
一、概述 Redis(Remote Dictionary Server,即远程字典服务器),是开源免费的、用C语言编写的、高性能的(key/value)分布式内存数据库,是一个遵守BSD协议,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。 Redis 与其他 key - value 缓存产品有以下三个特点: 1️⃣Redis支持...原创 2019-07-29 18:00:36 · 767 阅读 · 0 评论 -
Redis——NoSql简介
一、NoSql简介 NoSql无需事先为要存储的数据建立数据结构(即表结构),随时可以存储自定义的数据格式。而在关系型数据库里,增删字段是一件非常麻烦的事情。如果是数据量非常大的表,增加字段简直就是一个噩梦。二、NOSql数据库的四大分类 1、KV键值对:redis 2、文档型数据库 ①CouchDB ②MongoDB:MongoDB 是一个基于分布式文件存储的数据库。由 C++ ...原创 2019-07-29 16:27:15 · 393 阅读 · 0 评论 -
Redis11——使用Redis和lua实现抢红包
Redis 的功能不如数据库强大,事务也不完整,因此要保证数据的正确性需要通过严格的验证。而 Redis 的 Lua 语言是原子性的,且功能更为强大,所以优先选择使用 Lua 语言来实现抢红包。但是无论如何对于数据而言,在 Redis 当中存储,始终都不是长久之计,因为 Redis 并非一个长久储存数据的地方,它是非严格和安全的环境,更多的时候只是为了提供更为快速的缓存。所以当红包金额为 0 或者红包超时的时候(超时操作可以使用定时机制实现),会将红包数据保存到数据库中,这样才能够保证数据的安全性和严格性原创 2021-04-08 01:09:52 · 138 阅读 · 0 评论 -
Redis10——对于复杂操作的封装
有些时候,我们也许需要使用一些更为高级的缓存服务器的 API,如 Redis 的流水线、事务和 Lua 语言等,所以也许会使用到 RedisTemplate 本身。建议先定义 RedisTemplateService 的接口,代码如下所示:public interface RedisTemplateService { /** * 执行多个命令 */ public void execMultiCommand(); /** * 执行Redis事务原创 2021-04-04 21:48:34 · 118 阅读 · 0 评论 -
Redis09——Redis的高可用
一、主从同步 1、主从架构 尽管 Redis 的性能很好,但是有时候依旧满足不了应用的需要,比如过多的用户进入主页,导致 Redis 被频繁访问,此时就存在大量的读操作。对于一些热门网站的某个时刻(比如促销商品的时候)每秒成千上万的请求是司空见惯的,这个时候大量的读操作就会到达 Redis 服务器,触发许许多多的操作,显然单靠一台 Redis 服务器是完全不够用的。一些服务网站对安全性有较高的要求,当主服务器不能正常工作的时候,也需要从服务器代替原来的主服务器,作为灾备,以保证系统可以继续正常的工作。原创 2021-04-04 16:14:35 · 114 阅读 · 1 评论 -
Redis08——内存回收策略
Redis 也会因为内存不足而产生错误,也可能因为回收过久而导致系统长期的停顿,因此掌握执行回收策略十分有必要。在 Redis 的配置文件中,当 Redis 的内存达到规定的最大值时,允许配置 6 种策略中的一种进行淘汰键值,并且将一些键值对进行回收。 Redis 的配置文件放在 Redis 的安装目录下,在 Windows 中是 redis.windows.conf,在 Lunix/Unix 中则是 redis.conf。Redis 对其中的一个配置项——maxmemory-policy,提供了这样的原创 2021-04-04 14:09:49 · 57 阅读 · 0 评论 -
Redis07——Redis的两种持久化方式
在 Redis 中存在两种数据持久化的方式:一种是快照恢复(RDB),通过快照(snapshotting)实现,它是备份当前瞬间 Redis 在内存中的数据记录;另一种是只追加文件(Append-Only File,AOF),其作用就是当 Redis 执行写命令后,在一定的条件下将执行过的写命令依次保存在 Redis 的文件中,将来就可以依次执行这些保存的命令恢复 Redis 的数据了。一、RDB 对于快照备份而言,如果当前 Redis 的数据量很大,备份可能造成 Redis 卡顿,但是恢复重启是比较原创 2021-04-02 18:11:40 · 105 阅读 · 0 评论 -
Redis06——Redis中使用Lua
一、Redis对Lua的支持 在 Redis 的 2.6 以上版本中,除了可以使用命令外,还可以使用 Lua 语言操作 Redis。Redis 命令的计算能力并不算很强大,而使用 Lua 语言则在很大程度上弥补了 Redis 的这个不足。而且在 Redis 中,执行 Lua 语言是原子性的,也就说 Redis 执行 Lua 的时候是不会被中断的,具备原子性,这个特性有助于 Redis 对并发数据一致性的支持。 Redis 支持两种方法运行Lua脚本,一种是直接输入一些 Lua 语言的程序代码;另外一种是原创 2021-04-01 00:14:56 · 206 阅读 · 0 评论 -
Redis05——超时和垃圾回收
一、Redis的超时命令 正如 Java 虚拟机,它提供了自动 GC(垃圾回收)的功能,来保证 Java 程序使用过且不再使用的 Java 对象及时的从内存中释放掉,从而保证内存空间足够使用。当程序编写不当或考虑欠缺的时候(比如读入大文件),内存就可能存储不下运行所需要的数据,那么 Java 虚拟机就会抛出内存溢出的异常而导致服务不可用。同样,Redis 也是基于内存而运行的数据集合,也存在着对内存垃圾的回收和管理的问题。 Redis 基于内存,而内存对于一个系统是最为宝贵的资源,而且它远远没有磁盘那么原创 2021-03-31 22:39:11 · 182 阅读 · 0 评论 -
Redis04——发布订阅模式
一、发布订阅模式 发布订阅模式首先需要消息源,也就是要有消息发布出来,这个时候,订阅者就可以收到这个消息进行处理了,观察者模式就是这个模式的典型应用。比如使用银行卡消费的时候,银行往往会通过微信、短信或邮件通知用户这笔交易的信息: 模式的角色: ①要有发送消息的渠道 ②要有订阅者订阅这个渠道的消息二、Redis的发布订阅 使用 SUBSCRIBE 命令,比如监听一个叫作 chat 的渠道,这个时候我们需要先打开一个客户端,这里记为客户端 1,然后输入命令:SUBSCRIBE chat原创 2021-03-29 23:22:25 · 105 阅读 · 0 评论 -
Redis03——Redis的事务
一、Redis的事务二、事务的回滚三、watch命令原创 2021-03-23 22:39:41 · 144 阅读 · 0 评论 -
Redis02——Redis的数据类型
Redis 支持 6 种数据类型,它们分别是字符串(String)、列表(List)、集合(set)、哈希结构(hash)、有序集合(zset)和基数(HyperLogLog):原创 2021-03-22 16:35:06 · 138 阅读 · 0 评论 -
Redis01——在SpringBoot中使用Redis
一、依赖compile "org.springframework.boot:spring-boot-starter-data-redis:$springBootVersion"二、配置@Configurationpublic class RedisConfig { @Bean public JedisPoolConfig jedisPoolConfig() { JedisPoolConfig config = new JedisPoolConfig();原创 2021-03-22 14:12:42 · 112 阅读 · 0 评论