缓存 Redis
文章平均质量分 56
L-Zhang
这个作者很懒,什么都没留下…
展开
-
内存数据库实战
内存数据库特点SERVER为单线程处理模式,在处理用户请求的过程中,还会定期插入定时任务,比如: 1)过期KEY的删除 2)链接超时检查 3)AOF文件重写 4)扩容存放数据的dic容量这些定期任务大概100ms会触发一次。当有大量的KEY同时过期时,删除过期KEY的任务可能会执行约20ms后才会退出。 大KEY(线上看到过list 的elements超过百万的)删除时会阻塞比较长的...原创 2018-06-08 15:14:51 · 221 阅读 · 0 评论 -
Redis键空间通知(keyspace notifications)
Redis的键空间通知(keyspace notifications)功能是自2.8.0版本开始加入的。 客户端可以通过订阅/发布(Pub/Sub)机制,接收那些以某种方式改变了redis数据空间的事件通知。 比如:所有改变给定key的命令;所有经过lpush操作的key;所有在0号数据库中过期的key等等。 通知是通过Redis的订阅/发布机制发送的,因此,所有支持订阅/发布功能的客户端都可转载 2017-07-07 18:19:44 · 3496 阅读 · 0 评论 -
彻底理解Redis有效期问题
EXPIRE key seconds 起始版本:1.0.0 时间复杂度:O(1) 返回值:1 如果成功设置过期时间;0 如果key不存在或者不能设置过期时间。 为给定 key设置生存时间,当 key过期时(生存时间为 0),它会被自动删除。1.过期时间跟着key走,与值无关 在Redis中,带有过期时间的key被称为『易失的』(volatile)。 过期时间可以通过使用 DEL命令来删除整原创 2017-07-07 09:47:45 · 31424 阅读 · 1 评论 -
Redis控制调用频率
网站功能中好多地方用到了调用或访问频率的统计、限制,利用Redis可以实现访问频次的限制。 Redis官网中对incr命令的介绍中讲到了关于如何用redis来做rate limit的探讨。 官网地址为:https://redis.io/commands/INCR#pattern-rate-limiter网上找的中文翻译如下: 模式:Rate limiter 频次限制器模式是一种特殊的计数器,原创 2017-07-06 10:43:49 · 3639 阅读 · 0 评论 -
Redis文档链接(含官方中文)
Redis官方话题(中文,包含:集群规范、持久化等)http://www.redis.cn/topics/http://www.redis.cn/topics/cluster-spec.htmlhttp://www.redis.cn/topics/persistence.htmlRedis官方文档 Documentationhttps://redis.io/docume原创 2017-05-16 15:00:58 · 2666 阅读 · 0 评论 -
Redis持久化存储(AOF与RDB两种模式)
Redis中数据存储模式有2种:cache-only,persistence;•cache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”的手段,是一种安全性低/效率高/容易扩展的方式;•persistence即为内存中的数据持久备份到磁盘文件,在服务重启后可以恢复,此模式下数据相对安全。对于persistence持久化转载 2017-04-20 11:30:02 · 3007 阅读 · 0 评论 -
Redis config配置
我们先看看config 默认情况下系统是怎么配置的。在命令行中输入 config get *(如图)默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息。 我们就从上到下来理解一下这些配置信息中的某些配置: 1.dbfilename是本地持久化存储数据库文件名,默认为dump.rdb。我可以在安装目录文件夹下找到这个文转载 2017-04-19 16:26:55 · 3308 阅读 · 0 评论 -
Redis配置参数的热修改
Redis使用config命令,可以对配置项参数热修改,不必重启。Redis最好不要重启,重启一次会引发如下问题:1、如果数据很多(例如几个G),读起来很慢;2、重启风险很大,Redis有内存陷阱3、重启会引发读快照,读AOF文件使用config get * 获得所有的配置项的keyconfig set timeout 250改变key的valueconfi转载 2017-04-19 16:15:30 · 7899 阅读 · 0 评论 -
查看Redis版本信息
linux环境下查看redis的版本:查看redis的版本有两种方式:redis-server –version 和 redis-server -v 得到的结果是:Redis server v=3.0.7 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=c4d3f2c7214375c6redis-cli –version 和 redis-cl原创 2017-07-03 10:52:25 · 44633 阅读 · 2 评论 -
Jedis实现Redis操作事件通知
Redis的Java客户端Jedis可以通过订阅/发布(Pub/Sub)机制,接收那些以某种方式改变了Redis数据空间的事件通知。 Redis官网理论介绍地址:https://redis.io/topics/notifications实现步骤: 1.修改配置:键空间通知功能耗费CPU,默认关闭,需要修改配置文件redis.conf或 操作CONFIG SET命令,设置notify-keyspa原创 2017-07-07 18:32:14 · 8408 阅读 · 0 评论 -
Jedis和ShardedJedis设计分析
Jedis分析Jedis作为推荐的java语言redis客户端,其抽象封装为三部分:1.对象池设计:Pool,JedisPool,JedisFactory.主要引用了common-pool里的GenericObjectPool,BasePoolableObjectFactory。对象池技术主要使用了commons-pool参考文章:开源项目剖析之apache-commo转载 2017-07-20 18:23:02 · 5377 阅读 · 0 评论 -
Redis常用命令
Redis常用命令集1)连接操作命令quit:关闭连接(connection)auth:简单密码认证help cmd: 查看cmd帮助,例如:help quit2)持久化save:将数据同步保存到磁盘bgsave:将数据异步保存到磁盘lastsave:返回上次成功将数据保存到磁盘的Unix时戳shundown:将数据同步保存到磁盘,然后关闭服务3)远程服务控制info:提供服务器的信息转载 2017-07-10 09:31:43 · 2340 阅读 · 0 评论 -
Redis-Bitmaps应用
一.数据结构模型Redis提供的Bitmaps这个“数据结构”可以实现对位的操作。Bitmaps本身不是一种数据结构,实际上就是字符串,但是它可以对字符串的位进行操作。可以把Bitmaps想象成一个以位为单位数组,数组中的每个单元只能存0或者1,数组的下标在bitmaps中叫做偏移量。单个bitmaps的最大长度是512MB,即2^32个比特位。二. 命令2.1 设置值命令:s转载 2018-02-01 09:51:56 · 268 阅读 · 0 评论 -
唯品会Redis cluster大规模生产实践
唯品会Redis cluster大规模生产实践嘉宾:陈群很高兴有机会在Redis中国用户组给大家分享redis cluster的生产实践。目前在唯品会主要负责redis/hbase的运维和开发支持工作,也参与工具开发工作。Outline一、生产应用场景二、存储架构演变三、应用最佳实践四、运维经验总结第1、2节:介绍redis cluster在唯品会的转载 2017-08-25 10:34:28 · 1071 阅读 · 0 评论 -
Redis-Migrate-Tool 使用详解2
在线迁移 redis-migrate-tool启动后模拟成redis slave,请求master的全量数据和增量数据。redis-migrate-tool 收到数据之后解析成redis协议格式的oplog(写操作),然后发送给目标集群。 有两种请求方式: 1、source_safe: true,对于同一ip上的redis,逐个的请求全量数据(RDB); 2、source_safe: fal原创 2017-07-27 17:00:12 · 4008 阅读 · 3 评论 -
Redis-Migrate-Tool 使用详解
Redis-Migrate-Tool 详细介绍Redis 集群迁移工具,基于redis复制,快速,稳定。 github链接:https://github.com/vipshop/redis-migrate-tool特点: •快速。 •多线程。 •基于redis复制。 •实时迁移。 •迁移过程中,源集群不影响对外提供服务。 •异构迁移。 •支持Twemproxy集群,redis clu原创 2017-07-27 15:44:35 · 5049 阅读 · 2 评论 -
Redis 使用技巧
Redis 在当前的技术社区里是非常热门的。从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路。随之而来的一系列最佳实践,使得大多数人可以正确地使用 Redis。下面我们将探索正确使用 Redis 的一些技巧。1、停止使用 KEYS * Okay,以挑战这个命令开始这篇文章,或许并不是一个好的方式,但其确实可能是最重要的一点。很多时候当我们关注原创 2017-07-10 14:35:14 · 2521 阅读 · 0 评论 -
Memcached真的过时了吗?
这两年Redis火得可以,Redis也常常被当作Memcached的挑战者被提到桌面上来。关于Redis与Memcached的比较更是比比皆是。然而,Redis真的在功能、性能以及内存使用效率上都超越了Memcached吗?下面内容来自Redis作者在stackoverflow上的一个回答,对应的问题是《Is memcached a dinosaur in comparison to Redis?》原创 2017-07-10 14:07:23 · 2416 阅读 · 0 评论 -
Redis vs Memcached
Redis vs Memcached要把Redis与Memcached对比理解: 关于Redis与Memcached的比较更是比比皆是。然而,Redis真的在功能、性能以及内存使用效率上都超越了Memcached吗?Redis能替代Memcached?没有必要过多的关心**性能**,因为二者的性能都已经足够高了。由于Redis只使用单核,而Memcached可以使用多核,所以在比较上,平均每一个核原创 2017-07-10 11:24:38 · 2827 阅读 · 0 评论 -
Jedis实现多种功能总结
Jedis实现多种功能总结 Jedis是Redis的java版本的客户端,利用Jedis可以简单的实现许多功能。pipeline分布式id生成器分布式锁 Redis分布式一、 Pipeline 官方的说明: starts a pipeline,which is a very efficient way to send lots of command and read all the原创 2017-07-10 10:40:56 · 2735 阅读 · 0 评论 -
Redis及Sentinel配置详解
redis.conf 配置详解# redis 配置文件示例# 当你需要为某个配置项指定内存大小的时候,必须要带上单位,# 通常的格式就是 1k 5gb 4m 等酱紫:## 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes原创 2017-07-05 11:57:27 · 6098 阅读 · 0 评论 -
redis 报错 Redis protected-mode 配置文件没有真正启动
(error) DENIED Redis is running in protected mode because protected mode is enabled Redis protected-mode 是3.2 之后加入的新特性,在Redis.conf的注释中,我们可以了解到,他的具体作用和启用条件 链接redis 时只能通过本地localhost (127.0.0.1)这个来链转载 2017-07-05 18:32:48 · 3566 阅读 · 1 评论 -
基于Redis实现分布式锁(下)
基于Redis实现分布式锁,上一篇已经介绍了原理和流程,下面是实现的代码。Redis分布式锁package com.github.jedis.lock;import redis.clients.jedis.Jedis;/** * Redis distributed lock implementation. */public class JedisLock { Jedis jedis;转载 2017-07-05 18:13:12 · 2589 阅读 · 0 评论 -
The Little Redis Book
偶然间发现了Redis的这本书,和拥有这本书的网站,感觉相当不错,一个突来的亮点,记录下来以后慢慢看。The goal of this book is to build the foundation you’ll need to master Redis. We’ll focus on learning Redis’ five data structures and look at various原创 2017-07-11 14:27:38 · 2842 阅读 · 0 评论 -
jedis报LinkageError错误:javax/management/MBeanServer
jedis报LinkageError错误:javax/management/MBeanServer使用jedis客户端时,遇到下面异常信息:Horrible Exception: java.lang.LinkageError: loading constraint violation: loader "com/ibm/ws/classloader/CompoundClassLoader@6a36f原创 2017-07-01 16:03:30 · 5965 阅读 · 0 评论 -
Redis简单了解
Redis简介Redis是REmote DIctionary Server(远程字典服务器)缩写。以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容。支持的键值数据类型有:字符串类型string、散列类型hash、列表类型list、集合类型set、有序集合类型zset。内存存储与持久化Redis可以为每个健设置生存时间(Time To Live,TTL),生存时间到期后会被自动删除。原创 2017-07-01 16:03:02 · 2611 阅读 · 0 评论 -
Redis SORT排序命令实战
对于Redis SORT排序命令,由于太复杂,使用很少了解也很少。下面整理了一些Redis SORT排序命令使用方法与例子,以留备用. 官网的说明地址:http://www.redis.cn/commands/sort.htmlRedis SORT是由Redis提供的一个排序命令。集合中的标签是无序的,可以使用SORT排序。如:redis>SADD muylist 5(integer) 1re原创 2017-07-11 09:31:07 · 2852 阅读 · 0 评论 -
Redis的三种启动方式
一、直接启动下载 官网下载: https://redis.io/download安装tar zxvf redis-2.8.9.tar.gzcd redis-2.8.9#直接make 编译make#可使用root用户执行`make install`,将可执行文件拷贝到/usr/local/bin目录下。这样就可以直接敲名字运行程序了。make install启动#加上`&`号使redis以原创 2017-07-11 08:58:07 · 2687 阅读 · 0 评论 -
Redis监控技巧
本文来自 Bugsnag 的联合创始人 Simon Maynard 的系列文章,作者根据几年来对 Redis 的使用经历,对 Redis 监控方法进行了系统性的总结,干货很多,值得一看。原文链接:Redis Masterclass – Part 2, MonitoringRedis 监控最直接的方法当然就是使用系统提供的 info 命令来做了,你只需要执行下面一条命令,转载 2017-05-16 14:23:18 · 3286 阅读 · 0 评论 -
Redis性能问题排查解决手册
阅读目录:性能相关的数据指标内存使用率used_memory命令处理总数total_commands_processed延迟时间内存碎片率回收key总结性能相关的数据指标通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息。通过这些信息来分析文章后面提到的一些性能指标。info命令输出的数据可分为10个类别,转载 2017-05-15 14:54:08 · 2697 阅读 · 0 评论 -
Redis单核CPU占用过高
redis是用"单线程-多路复用io模型"来实现高性能的内存数据服务的,这种机制避免了使用锁,但是同时这种机制在进行sunion之类的比较耗时的命令时会使redis的并发下降。因为是单一线程,所以同一时刻只有一个操作在进行,所以,耗时的命令会导致并发的下降,不只是读并发,写并发也会下降。而单一线程也只能用到一个cpu核心,所以可以在同一个多核的服务器中,可以启动多个实例,组成master-mast转载 2017-05-05 10:03:38 · 8192 阅读 · 0 评论 -
Redis 在新浪微博中的应用
内容目录:Redis简介Redis基本原理新浪Redis使用历程Redis应用场景遇到的问题及解决办法经验总结Redis 在新浪微博中的应用Redis简介1. 支持5种数据结构支持strings, hashes, lists, sets, sorted setsstring是很好的存储方式,用来做计数存储。sets用于建立索引库非常棒;2.转载 2017-07-11 16:28:38 · 2892 阅读 · 0 评论 -
Redis RPOPLPUSH使用技巧
Redis链表经常会被用于消息队列的服务,以完成多程序之间的消息交换。 假设一个应用程序正在执行LPUSH操作向链表中添加新的元素,我们通常将这样的程序称之为”生产者(Producer)”,而另外一个应用程序正在执行RPOP操作从链表中取出元素,我们称这样的程序为”消费者(Consumer)”。如果此时,消费者程序在取出消息元素后崩溃了,由于该消息已经被取出且没有被正常处理,那么我们就可以认为该消原创 2017-07-11 18:36:59 · 7152 阅读 · 0 评论 -
Redis Cluster的FailOver失败案例分析
场景: 使用redis clusterRC1部署集群,6台机器,每台部署16个实例,每个master使用一个slave,node_timeout为默认值(15s)。kill掉其中一个master发现failover完成不了。通过cluster nodes观察,该节点一直处于pfail状态。问题出在失败判定上,一直处于PFail,说明完成不了PFail->Fail的转换。然而同样的配转载 2017-07-03 14:11:34 · 3944 阅读 · 0 评论 -
基于Redis实现分布式锁(上)
背景在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。Redis命令介绍使用Redis实现分布式锁,有两个重要函数需转载 2017-07-05 18:06:02 · 2875 阅读 · 0 评论 -
Jedis的多种使用方式
Jedis是Redis的Java版本的客户端实现。 通过一段时间的使用,jedis基本实现Redis的所有功能,并且Jedis在客户端实现Redis数据分片功能,jedis也实现了Redis本身的数据集群分片功能。1. 下载jedis 代码 jedis 开源代码地址:https://github.com/xetorthio/jedis2. 项目中如何使用Jedis使用 一般都使用maven作原创 2017-07-05 15:08:23 · 2737 阅读 · 0 评论 -
Redis性能压测工具 redis-benchmark
Redis有多快?Redis 自带了一个叫 redis-benchmark 的工具来模拟 N 个客户端同时发出 M 个请求。 (类似于 Apache ab 程序)。你可以使用 redis-benchmark -h 来查看基准参数。以下参数被支持:Usage: redis-benchmark [-h ] [-p ] [-c ] [-n [-k ] -h Server h转载 2017-07-04 17:17:00 · 26137 阅读 · 0 评论 -
Redis服务器命令
服务器命令:1.info——当前redis服务器信息 server:一般redis服务器信息,包含以下域: redis_version:redis服务器版本号 redis_git_sha1:Git SHA1 redis_git_dirty:Git dirty flag os:redis服务器转载 2017-04-19 16:29:46 · 2689 阅读 · 0 评论 -
Redis 3.0中文官方文档翻译和源码解析
Redis 3.0中文官方文档翻译和源码解析http://www.iteye.com/blogs/subjects/redis3英文不好的可以看看,值得关注原创 2017-07-04 10:12:06 · 2685 阅读 · 0 评论 -
Redis Cluster理论整理
Redis 集群的 TCP 端口(Redis Cluster TCP ports)每个 Redis 集群节点需要两个 TCP 连接打开。正常的 TCP 端口用来服务客户端,例如 6379,加 10000 的端口用作数据端口,在上面的例子中就是 16379。 第二个大一些的端口用于集群总线(bus),也就是使用二进制协议的点到点通信通道。集群总线被节点用 于错误检测,配置更新,故障转移授转载 2017-07-04 09:59:08 · 2799 阅读 · 0 评论