redis
文章平均质量分 94
Wang-Junchao
这个作者很懒,什么都没留下…
展开
-
【05-Redis 数据类型(下)】
你也许已经知道Redis并不是简单的key-value存储,实际上他是一个数据结构服务器,支持不同类型的值。也就是说,你不必仅仅把字符串当作键所指向的值。原创 2017-11-29 07:31:20 · 832 阅读 · 0 评论 -
【11-Redis复制】
Redis复制很简单易用,它通过配置允许slave Redis Servers或者Master Servers的复制品。接下来有几个关于redis复制的非常重要特性: 一个Master可以有多个Slaves。Slaves能过接口其他slave的链接,除了可以接受同一个master下面slaves的链接以外,还可以接受同一个结构图中的其他slaves的链接。原创 2017-12-06 07:46:21 · 723 阅读 · 0 评论 -
【25-Reids内存优化】
edis2.2版本及以后,存储集合数据的时候会采用内存压缩技术,以使用更少的内存存储更多的数据。如Hashes,Lists,Sets和Sorted Sets,当这些集合中的所有数都小于一个给定的元素,并且集合中元素数量小于某个值时,存储的数据会被以一种非常节省内存的方式进行编码,使用这种编码理论上至少会节省10倍以上内存(平均节省5倍以上内存)。原创 2017-12-23 08:10:38 · 1022 阅读 · 0 评论 -
【19-Redis集群规范】
Redis 集群是 Redis 的一个分布式实现,主要是为了实现以下这些目标(按在设计中的重要性排序):- 在1000个节点的时候仍能表现得很好并且可扩展性(scalability)是线性的。- 没有合并操作,这样在 Redis 的数据模型中最典型的大数据值中也能有很好的表现。- 写入安全(Write safety):那些与大多数节点相连的客户端所做的写入操作,系统尝试全部都保存下来。不过公认的,还是会有原创 2017-12-15 07:32:30 · 885 阅读 · 0 评论 -
【12-Redis持久化】
Redis 提供了不同级别的持久化方式:RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储.AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大.如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化原创 2017-12-07 07:36:51 · 610 阅读 · 0 评论 -
【04-Redis数据类型(上)】
本文介绍了Redis的七种数据类型:String,List,Set,Hash,Sorted set,Bitmap和 HyperLogLog原创 2017-11-28 07:47:38 · 624 阅读 · 0 评论 -
【20-Redis协议说明】
Redis协议在以下几点之间做出了折衷:简单的实现快速地被计算机解析简单得可以能被人工解析网络层Redis在TCP端口6379上监听到来的连接,客户端连接到来时,Redis服务器为此创建一个TCP连接。在客户端与服务器端之间传输的每个Redis命令或者数据都以\r\n结尾。请求Redis接收由不同参数组成的命令。一旦收到命令,将会立刻被处理,并回复给客户端。原创 2017-12-16 08:14:51 · 754 阅读 · 0 评论 -
【26-Redis设计与实现-简单动态字符串】
Redis 没有直接使用C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串( simple dynamic string, SDS )的抽象类型,并将SDS 用作Redis 的默认字符串表示。在Redis 里面, C 字符串只会作为字符串字面量( s回ng literal )用在一些无须对字符串值进行修改的地方,比如打印日志。原创 2017-12-26 08:10:51 · 892 阅读 · 0 评论 -
【13-Redis安全性】
本文档从以下几点提供了关于Redis安全主题的介绍:Redis提供的访问控制,代码安全问题,通过外部的恶意输入触发的攻击和其它类似的主题也包含在内。Redis被设计成仅有可信环境下的可信用户才可以访问。这意味着将Redis实例直接暴露在网络上或者让不可信用户可以直接访问Redis的tcp端口或Unix套接字,是不安全的。原创 2017-12-08 07:53:51 · 901 阅读 · 0 评论 -
【27-Redis设计与实现-链表】
链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。作为一种常用数据结构,链表内置在很多高级的编程语言里面,因为Redis 使用的C 语言并没有内置这种数据结构,所以Redis 构建了自己的链表实现。链表在Redis 中的应用非常广泛,比如列表键的底层实现之一就是链表。当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时, Redis 就会原创 2017-12-27 07:40:35 · 819 阅读 · 0 评论 -
【21-Redis:LRU算法使用】
当Redis被当做缓存来使用,当你新增数据时,让它自动地回收旧数据是件很方便的事情。这个行为在开发者社区非常有名,因为它是流行的memcached系统的默认行为。原创 2017-12-19 08:18:31 · 923 阅读 · 0 评论 -
【28-Redis设计与实现-字典】
【博文总目录>>>】|【工程下载>>>】字典,又称为符号表( symbol table )、关联数组( associative array )或映射( map ),是一种用于保存键值对( key-value pair )的抽象数据结构。在字典中,一个键( key )可以和一个值( value )进行关联(或者说将键映射为值),这些关联的键和值就称为键值对。字典中的每个键都是独一无二的,程原创 2018-01-07 09:14:30 · 845 阅读 · 0 评论 -
【29-Redis设计与实现-跳跃表】
【博文总目录>>>】|【工程下载>>>】跳跃表( skiplist )是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。跳跃表支持平均O(logN)、最坏O(N)(的复杂度的节点查找,还可以通过顺序性操作来批量处理节点。在大部分情况下,跳跃表的效率可以和平衡树相媲美,井且因为跳跃表的实现比平衡树要来得更为简单,所以有不少程序都使用跳跃表来代替原创 2018-01-08 08:11:46 · 1251 阅读 · 0 评论 -
【30-Redis设计与实现-整数集合】
【博文总目录>>>】|【工程下载>>>】整数集合( intset )是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时, Redis 就会使用整数集合作为集合键的底层实现。整数集合的实现整数集合( intset )是Redis 用于保存整数值的集合抽象数据结构,它可以保存类型为int16_t 、int32_t 或者int64_t 的整数值,并且保证集合原创 2018-01-09 08:05:53 · 711 阅读 · 0 评论 -
【18-Redis集群教程】
Redis 集群是一个提供在多个Redis间节点间共享数据的程序集。Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误.Redis 集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令.原创 2017-12-14 07:48:31 · 751 阅读 · 0 评论 -
【03-Redis集群命令】
Redis集群命令原创 2017-11-24 08:23:04 · 772 阅读 · 0 评论 -
【02-Redis命令大全】
Redis命令大全原创 2017-11-26 09:27:23 · 922 阅读 · 0 评论 -
【06-Redis事务】
MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。事务可以一次执行多个命令, 并且带有以下两个重要的保证:事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。EXEC 命令负责触发并执行事务中的所有命令原创 2017-11-30 08:16:22 · 600 阅读 · 0 评论 -
【14-Redis如何处理客户端连接】
Redis通过在TCP端口上进行监听,或者Unix socket(如果启用)的方式来接受客户端的连接。当一个新的客户端连接被接受执行以下操作:- 当Redis使用非阻塞I/O复用,客户端socket设置为非阻塞状态。- socket TCP_NODELAY属性被设置确保在连接中我们不会延迟。- 一个可读的文件事件被创建,因而当新的数据可以被访问时,Reids可以更快接收客户端在socket上的查询原创 2017-12-09 07:30:18 · 1275 阅读 · 0 评论 -
【07-Redis从文件中批量插入数据】
在redis中,有时候需要批量执行某些命令,但是在redis的redis-cli下,只能一条条的执行指令,实在太麻烦了!想到这,你是不是蓝瘦香菇? 如果能将要执行的指令一行行存储到文件中,然后用一行命令将文件中的命令一次执行完成,那肯定爽死了!所以下面,我要带你冒着手指怀孕的危险,让你爽一把原创 2017-12-01 07:43:10 · 1003 阅读 · 0 评论 -
【15-Redis信号处理】
SIGTERM信号会让Redis安全的关闭。Redis收到信号时并不立即退出,而是开启一个定时任务,这个任务就类似执行一次SHUTDOWN命令的。 这个定时关闭任务会在当前执行命令终止后立即施行,因此通常有有0.1秒或更少时间延迟。万一Server被一个耗时的LUA脚本阻塞,如果这个脚本可以被SCRIPT KILL命令终止,那么定时执行任务就会在脚本被终止后立即执行,否则直接执行。原创 2017-12-11 07:52:45 · 846 阅读 · 0 评论 -
【22-Redis管道】
Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。服务端处理命令,并将结果返回给客户端。原创 2017-12-20 07:27:59 · 751 阅读 · 0 评论 -
【08-Redis大量数据插入】
有些时候,Redis实例需要装载大量用户在短时间内产生的数据,数以百万计的keys需要被快速的创建。我们称之为大量数据插入(mass insertion),本文档的目标就是提供如下信息:Redis如何尽可能快的处理数据。原创 2017-12-03 07:10:47 · 1311 阅读 · 0 评论 -
【16-Redis的Sentinel】
Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。自动故障迁移(Automatic failo原创 2017-12-12 08:12:35 · 455 阅读 · 0 评论 -
【09-Redis-分区:怎样将数据分布到多个redis实例】
分区是将你的数据分发到不同redis实例上的一个过程,每个redis实例只是你所有key的一个子集。文档第一部分将介绍分区概念,第二部分介绍分区的另外一种可选方案。Redis分区主要有两个目的: 分区可以让Redis管理更大的内存,Redis将可以使用所有机器的内存。如果没有分区,你最多只能使用一台机器的内存。分区使Redis的计算能力通过简单地增加计算机得到成倍提升,Redis的网络带宽也会随着计算机和网卡的增加而原创 2017-12-04 08:36:49 · 1344 阅读 · 0 评论 -
【23-将redis当做使用LRU算法的缓存来使用】
当Redis被当做缓存来使用,当你新增数据时,让它自动地回收旧数据是件很方便的事情。这个行为在开发者社区非常有名,因为它是流行的memcached系统的默认行为。LRU是Redis唯一支持的回收方法。本页面包括一些常规话题,Redis的maxmemory指令用于将可用内存限制成一个固定大小,还包括了Redis使用的LRU算法,这个实际上只是近似的LRU。原创 2017-12-21 07:15:14 · 906 阅读 · 0 评论 -
【17-Redis延迟监控框架】
每个Redis实例经常被用于每时每刻都要提供大量查询服务的场景,同时,对平均响应时间和最大响应延迟的要求都非常严格。当Redis用作内存系统时,它以不同的方式与操作系统进行交互,例如,持久化数据到磁盘上。再者,Redis实现了丰富的命令集。大部分命令执行都很快,能在确定时间内或对数时间内完成(译者注;对数时间是时间复杂度的一种),另外有些命令则是复杂度为O(N)的命令,会导致延迟毛刺原创 2017-12-13 08:22:09 · 1124 阅读 · 0 评论 -
【01-Redis 介绍】
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询. Redis 内置了 复制(replicati原创 2017-11-23 07:35:30 · 969 阅读 · 0 评论 -
【10-Redis分布式锁】
分布式锁在很多场景中是非常有用的原语, 不同的进程必须以独占资源的方式实现资源共享就是一个典型的例子。有很多分布式锁的库和描述怎么实现分布式锁管理器(DLM)的博客,但是每个库的实现方式都不太一样,很多库的实现方式为了简单降低了可靠性,而有的使用了稍微复杂的设计。这个页面试图提供一个使用Redis实现分布式锁的规范算法。我们提出一种算法,叫Redlock,我们认为这种实现比普通的单实例实现更安全原创 2017-12-05 07:06:13 · 1135 阅读 · 0 评论 -
【24-Redis发布订阅】
订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者)。而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅。订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的。这种发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑。原创 2017-12-22 08:10:33 · 918 阅读 · 0 评论 -
【31-Redis分布式锁进化史】
【博文总目录>>>】Redis分布式锁进化史近两年来微服务变得越来越热门,越来越多的应用部署在分布式环境中,在分布式环境中,数据一致性是一直以来需要关注并且去解决的问题,分布式锁也就成为了一种广泛使用的技术,常用的分布式实现方式为Redis,Zookeeper,其中基于Redis的分布式锁的使用更加广泛。但是在工作和网络上看到过各个版本的Redis分布式锁实现,每种实现都...原创 2018-11-19 09:33:09 · 609 阅读 · 2 评论