
分布式缓存Redis学习
文章平均质量分 86
本专栏将总结分布式缓存技术Redis的相关内容,主要包括:基本操作、数据类型、框架、事务、管道、持久化、脚本、发布与订阅、集群等。如果有问题,欢迎留言交流,或加qq:1138517609
BugFree_张瑞
字节研发、QA、PM等岗位缺人,可帮内推实习/校招/社招,需要的私信我
展开
-
分布式缓存Redis之bitmap、setbit
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning基本语法:1)SETBITredis 127.0.0.1:6379> setbit KEY_NAME OFFSET VALUE //该命令用于对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。时间复杂度O(1) 在redis中,存储的字符串都是原创 2018-01-06 17:11:46 · 25438 阅读 · 11 评论 -
分布式一致性hash算法
写在前面 在学习Redis的集群内容时,看到这么一句话:Redis并没有使用一致性hash算法,而是引入哈希槽的概念。而分布式缓存Memcached则是使用分布式一致性hash算法来实现分布式存储。所以就专门学习了一下什么是分布式?什么是一致性?什么是哈希? 1)分布式(distributed)是指在多台不同的服务器中部署不同的服务模块,通过远程调用协同工作,对外提供服务。“分布式一致性hash原创 2018-01-01 11:44:40 · 4921 阅读 · 1 评论 -
分布式缓存Redis之与Memcached的比较
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning 由于在项目中并没有使用Memcached,所以在这贴出Memcached的教程,以备不时之需。 http://www.runoob.com/Memcached/Memcached-tutorial.html Redis的作者Salvatore Sanfi原创 2017-12-28 15:07:59 · 26729 阅读 · 3 评论 -
分布式缓存Redis之适用场景
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning 学而用之嘛。在这总结一下,Redis的适用场景,合理的使用Redis会让你的项目变得更高效。1、显示最新的项目列表 下面这个语句常用来显示最新项目,随着数据多了,查询毫无疑问会越来越慢。SELECT * FROM foo WHERE ... ORDER BY原创 2017-12-25 16:19:57 · 8472 阅读 · 1 评论 -
分布式缓存Redis之性能测试
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning Redis 性能测试是通过同时执行多个命令实现的。语法: redis 性能测试的基本命令如下:redis-benchmark [option] [option value]实例 以下实例同时执行 10000 个请求来检测性能:redis-benchmark原创 2017-12-24 11:19:30 · 4652 阅读 · 1 评论 -
分布式缓存Redis之内存优化
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning Redis作为内存数据库,所有数据都从内存中拿,省去读写磁盘的消耗(持久化是由fork子进程处理,主服务对外能力不受影响),响应速度极快。但我们不可能将所有的数据都读到内存中,所以内存资源显得非常可贵,我们就要优化存储结构,使得好钢用在刀刃上。一、尽量使用ha原创 2017-12-23 18:40:38 · 6811 阅读 · 1 评论 -
分布式缓存Redis之cluster集群
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning 官方文档: 集群教程:http://www.redis.cn/topics/cluster-tutorial.html 集群规范:http://www.redis.cn/topics/cluster-spec.html jedis客户端操作r原创 2017-12-21 15:20:04 · 2924 阅读 · 1 评论 -
分布式缓存Redis之Script脚本
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning一、简介 Redis 脚本使用单个Lua 解释器来执行脚本,并且Redis 也保证脚本会以原子性(atomic)的方式执行:当某个脚本正在运行的时候,不会有其他脚本或 Redis 命令被执行。这和使用 MULTI / EXEC 包围的事务很类似。在其他别的客户端原创 2017-12-16 15:45:53 · 10478 阅读 · 1 评论 -
分布式缓存Redis之主从复制与Sentinel哨兵
写在前面本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_LearningRedis主从复制Master可以拥有多个slave多个slave可以连接同一个Master外,还可以连接到其他的slave主从复制不会阻塞Master,在主从复制时,Master可以处理client请求。提供系统的伸缩性。支持slave只读模式异步的主原创 2017-12-15 09:33:52 · 2606 阅读 · 1 评论 -
分布式缓存Redis之ShardedJedis
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning 原来项目中有用到Redis用作缓存服务,刚开始时只用一台Redis就能够满足服务,随着项目的慢慢进行,发现一台满足不了现有的项目需求,因为Redis操作都是原子性的,造成有时同时读写缓存导致查询效率的下降。但是由于我们现在用的还是Redis2.X版本,还是没有原创 2017-12-14 10:46:39 · 3969 阅读 · 1 评论 -
分布式缓存Redis之Java客户端
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning 目前Redis的Java客户端主要有两种:Jedis、Redission,个人感觉Jedis用的广泛一些,而且博主现在开发用的也是Jedis。Jedis与Redisson对比概况对比 Jedis是Redis的Java实现的客户端,其API提供了比较全面的Re原创 2017-12-13 19:57:15 · 4374 阅读 · 10 评论 -
分布式缓存Redis之资源释放
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning为什么要关闭连接? 比如下面一段代码:for(int i = 2000; i < 3000; i++) { Jedis jedis = redisDao.getJedis(); jedis.set("user:" + i, jedis.toStr原创 2017-12-12 19:14:59 · 2618 阅读 · 1 评论 -
分布式缓存Redis之发布/订阅(Pub/Sub)
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning一、简介 SUBSCRIBE、UNSUBSCRIBE和PUBLISH 三个命令实现了发布与订阅信息泛型(Publish/Subscribe messaging paradigm),在这个实现中, 发送者(发送信息的客户端)不是将信息直接发送给特定的接收者(接收信原创 2017-12-12 11:19:13 · 19895 阅读 · 1 评论 -
分布式缓存Redis之Pipeline(管道)
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning Redis的pipeline(管道)功能在命令行中没有,但redis是支持pipeline的,而且在各个语言版的client中都有相应的实现。 由于网络开销延迟,就算redis server端有很强的处理能力,也会由于收到的client消息少,而造成吞吐量小。原创 2017-12-11 09:21:56 · 96883 阅读 · 10 评论 -
分布式缓存Redis之事务
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning 事务特性官方文档:https://redis.io/topics/transactions 事务特性中文文档:http://www.redis.cn/topics/transactions.html 从redis2.6开始引入Redis scrip原创 2017-12-10 22:50:59 · 2787 阅读 · 2 评论 -
分布式缓存Redis之持久化
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_LearningRedis 可以持久化,当做Cache时持久化的意义在哪? 持久化的意思就是说服务器重启之后,缓存依然存在,内存类型的缓存,服务器重启后就不存在了。比如使用持久化的方案做登录Session,服务器重启后用户不用再次登录,而一般内存方案需要再次登录。 Redis原创 2017-12-09 16:43:25 · 6587 阅读 · 1 评论 -
分布式缓存Redis之Ubuntu常用命令
写在前面本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning1、查看端口是否被占用:netstat –ntlp |grep 6379 netstat -tunpl | grep redis-server2、命令客户端检测链接:连接之前可以先检测服务是否启动;ps -ef |grep redis 测试启动客户端 redis-原创 2017-12-08 09:21:28 · 1994 阅读 · 1 评论 -
分布式缓存Redis之配置文件redis.conf详解
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning 使用配置文件启动服务器:src/redis-server redis.conf 主要配置项:Redis支持很多的参数,但都有默认值。*********************** General######################daemonize:原创 2017-12-07 11:49:11 · 2199 阅读 · 1 评论 -
分布式缓存Redis之二进制安全
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning什么是二进制安全?Redis的String为什么是二进制安全的?维基百科: Binary-safe is a computer programming term mainly used in connection with string manipulating原创 2017-12-07 10:30:07 · 7890 阅读 · 1 评论 -
分布式缓存Redis之HyperLogLog
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning 基数估计算法就是使用准确性换取空间。 为了说明这一点,我们用三种不同的计算方法统计所有莎士比亚作品中不同单词的数量。请注意,我们的输入数据集增加了额外的数据以致比问题的参考基数更高。 这三种技术是:Java HashSet、Linear Probabilist原创 2017-12-06 09:29:42 · 1603 阅读 · 1 评论 -
分布式缓存Redis之数据类型
写在前面本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_LearningRedis 数据类型官方文档:http://www.redis.net.cn/tutorial/3505.htmlRedis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)在Ubu原创 2017-12-05 15:15:34 · 961 阅读 · 0 评论 -
学习分布式缓存技术Redis系列(总序)
Remote DIctionary Server(redis) 相关参考资料本教程所编写使用的Eclipse-java工程源码见GitHub: https://github.com/selfconzrr/Redis_LearningRedis官网–http://redis.io/ 在线测试redis命令 http://try.redis.io/ Redis文档 https://github.原创 2017-12-04 20:19:12 · 1450 阅读 · 0 评论