8.Redis
文章平均质量分 79
郑学炜
这个作者很懒,什么都没留下…
展开
-
3.Redis常见的5种不同的数据类型详解
数据类型 可以存储的值 操作 STRING 字符串、整数或者浮点数 对整个字符串或者字符串的其中一部分执行操作对整数和浮点数执行自增或者自减操作 LIST 链表 从两端压入或者弹出元素读取单个或者多个元素进行修剪,只保留一个范围内的元素 SET 无序集合 添加、获取、移除单个元素检查一个元素是否存在于集合中计算交集、并集、差集从集合里面随机获取元素 HASH 包含键值对的无...原创 2018-03-31 08:29:20 · 1684 阅读 · 0 评论 -
9.Redis Cluster的实现细节
Redis Cluster 实现本文将从设计思路,功能实现几个方面介绍Redis Cluster。(下面提到的epoch(类似于Raft算法“term”(任期))假设读者已经了解Redis Cluster的使用方式,不了解可以先看之前一篇介绍Redis Cluster的博客。简介Redis Cluster作为Redis的分布式实现,主要做了两个方面的事情:1,数据分片Redis Cluster将数...原创 2018-04-12 12:38:33 · 322 阅读 · 0 评论 -
7.Redis Sentinel机制与用法说明(基于哨兵模式的Redis Sharding方案)
Redis Sentinel机制与用法说明(哨兵模式)1、主Redis与各个从Redis之间能够实现高可用(监控、自动故障迁移等),这个委托给redis-sentinel来实现。 2、业务代码中为分散redis服务的压力,全部写操作走主库,部分读操作需要走从服务器的业务需求。(就目前jedis 2.6.2版本中的JedisSentinelPool做不到这点) 3、对多个Master-Slaves组...原创 2018-04-04 10:34:40 · 468 阅读 · 0 评论 -
11.Redis的事务、管道和脚本
1. Redis事务定义Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次执行这些命令。1. Redis保证一个事务中的所有命令要么都执行,要么都不执行。如果在发送EXEC命令前客户端断线了,则Redis会清空事务队列,事...原创 2018-04-03 12:01:39 · 777 阅读 · 0 评论 -
10.Redis的事务功能详解
Redis的事务功能详解MULTI、EXEC、DISCARD和WATCH命令是Redis事务功能的基础。Redis事务允许在一次单独的步骤中执行一组命令,并且可以保证如下两个重要事项:>Redis会将一个事务中的所有命令序列化,然后按顺序执行。Redis不可能在一个Redis事务的执行过程中插入执行另一个客户端发出的请求。这样便能保证Redis将这些命令作为一个单独的隔离操作执行。 >...原创 2018-04-03 11:32:20 · 488 阅读 · 1 评论 -
4.Redis的持久化
持久化(persistence)Redis 持久化Redis 提供了多种不同级别的持久化方式:RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。 AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾(每秒...原创 2018-04-03 00:46:59 · 203 阅读 · 0 评论 -
6.Redis集群之数据分片
为什么集群?通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取。Redis是一个很好的Cache工具。大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿,在这种情况下,如何正确架构Redis呢?首先,无论我们是使用自己的物理主机,还是使用云服务主机,内存资源往往是有限制的,scale up不是一个好办法,我们需要scale out横向可伸缩扩展,这需要由多...原创 2018-04-02 16:36:37 · 1290 阅读 · 0 评论 -
8.Redis集群之Redis Cluster方案
redis集群原理之官方的Redis Cluster方案redis是单线程,但是一般的作为缓存使用的话,redis足够了,因为它的读写速度太快了。 官方的一个简单测试: 测试完成了50个并发执行100000个请求。 设置和获取的值是一个256字节字符串。 结果:读的速度是110000次/s,写的速度是81000次/s 在这么快的读写速度下,对于一般程序来说足够用了,...原创 2018-04-02 14:07:47 · 473 阅读 · 0 评论 -
5.Redis内存满了的几种解决方法(内存淘汰策略与Redis集群)
1,增加内存;2,使用内存淘汰策略。3,Redis集群。 重点介绍下23;第2点:我们知道,redis设置配置文件的maxmemory参数,可以控制其最大可用内存大小(字节)。那么当所需内存,超过maxmemory怎么办?这个时候就该配置文件中的maxmemory-policy出场了。其默认值是noeviction。下面我将列出当可用内存不足时,删除redis键具有的淘汰规则。 规则名称 规则说...原创 2018-04-02 13:35:14 · 46953 阅读 · 0 评论 -
14.Redis的那些最常见面试问题
Redis的那些最常见面试问题 先把这些面试题给浏览一遍,大概知道redis的一些相关名词,接下来几篇博客才会继续的详细一些写redis的一些特性~~然后慢慢把redis学会。 1.什么是Redis?Redis 是一个基于内存的高性能key-value数据库。 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行...原创 2018-04-02 09:50:21 · 430 阅读 · 1 评论 -
1.redis的相关知识点
这篇文章先简单的介绍一下redis有什么相关知识点,然后再从接下去的一些文章对一些重要的知识点进行总结。一、Redis 是什么Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。五种类型数据类型为:字符串、列表、集合、有序集合、散列表。Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。二、五种...原创 2018-04-01 22:43:51 · 364 阅读 · 0 评论 -
12.Redis的事件驱动(IO多路复用)
目录§ 从Redis的工作模式谈起§ Reactor模式· C10K问题· I/O多路复用技术· Reactor的定义· Java中的NIO与Netty§ Redis与Reactor§ 总结§ 参考资料从Redis的工作模式谈起我们在使用Redis的时候,通常是多个客户端连接Redis服务器,然后各自发送命令请求(例如GetSet)...原创 2018-04-09 08:49:06 · 9896 阅读 · 3 评论 -
13.Redis事件模型
概述redis 内部有一个小型的事件驱动,它和 libevent 网络库的事件驱动一样,都是依托 I/O多路复用技术支撑起来的。利用 I/O 多路复用技术,监听感兴趣的文件 I/O 事件,例如读事件,写事件等,同时也要维护一个以文件描述符为主键,数据为某个预设函数的事件表,这里其实就是一个数组或者链表。当事件触发时,比如某个文件描述符可读,系统会返回文件描述符值,用这个值在事件表中找到相应的数据项...原创 2018-04-09 08:47:05 · 941 阅读 · 0 评论 -
2.Redis为什么是单线程单进程的
1.本身性能很高,每秒处理10万次的读写。 2代码更清晰,处理逻辑更简单 3.不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗(下面详细说) 4.不存在多进程或者多线程导致的切换而消耗CPU 5.事件处理类型是IO多路复用 6.将并行事件,串行化发生。 还要考虑Redis操作的是内存中的数据结构。如果在多线程中操作,那就需要为这些对象加锁。所以使用多线程可以提高性...原创 2018-04-13 17:51:48 · 2827 阅读 · 0 评论