一.Redis位图 1.位图的最小单位是bit,每个bit的值只能是0和1,位图的应用场景一般用于一些签到记录,例如打卡等. 场景举例: 例如某APP要存储用户的打卡记录,如果按照正常的思路来做,可能是用户每天是否打卡的记录都单独设置一个key-value键值对来存储,这样的话,每个用户每天都需要耗费一个键值对空间.而如果是位图,就可以很方便地通过位图来进行记录,例如如下图: 位图不算基础数据结构或者特殊数据结构,其本质上还是字符串.由于每个bit代表一个数据,所以还可以当作是bit数组来看待.…
我们在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经看过的内容.问题来了,新闻客户端推荐系统如何实现推送去重的? 会想到服务器记录了用户看过的所有历史记录,当推荐系统推荐新闻时会从每个用户的历史记录里进行筛选,过滤掉那些已经存在的记录.问题是当用户量很大,每个用户看过的新闻又很多的情况下,这种方式,推荐系统的去重工作在性能上跟的上么? 实际上,如果历史记录存储在关系数据库里,去重就需要频繁地对数据库进行 exists 查询,当系统并发量很高时,数据库是很难…
1.  MySql+Memcached架构的问题 Memcached采用客户端-服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满足协议格式要求,客户端Library可以用任何语言实现. Memcached服务器使用基于Slab的内存管理方式,有利于减少内存碎片和频繁分配销毁内存所带来的开销.各个Slab按需动态分配一个page的内存(和4Kpage的概念不同,这里默认page为1M),page内部按照不同slab class的尺寸再划分为内存chunk供服务器存储KV键值对使用(…
Redis是什么 Redis,全称是Remote Dictionary Service,翻译过来就是,远程字典服务. redis属于nosql非关系型数据库.Nosql常见的数据关系,基本上是以key-value键值对形式存在的. Key-value: 就像翻阅中文字典或者单词字典,通过指定的需要查询的字或者单词(key),可以查找到字典里面对应的详细内容和介绍(value) Redis的一些特点:支持数据持久化.支持多种数据结构.支持数据备份.原子性操作等. 原子性:操作不能被中途打断. Re…
这是一篇包含了介绍性质和吐槽性质的日志.主要介绍一下我学习redis持久化时候被坑的经历.redis的使用介绍现在没有打算写,因为比较多,以我如此懒的性格...好吧,还是有点这方面想法的,不过一篇博客肯定是写不下,要写的话以后慢慢写出一个系列来.今天先说序列化. 首先,我们都知道redis是个内存数据库,也就是所有数据都放在内存中的.那么如果进程挂掉了,或者系统重启的时候,内存就会清理掉了.为了保住这些数据,redis做了持久化的功能,也就是把数据库中的数据写入磁盘中保存起来.如果不幸服务器挂掉…
Logstash将日志写入Redis 为什么要使用Redis 在企业中,日志规模的量级远远超出我们的想象,这就是为什么会有一家公司日志易专门做日志收集,给大型金融公司收集日志,比如银行,因为你有可能看到,1秒钟好几千万的日志量,往服务器写入,那么企业中的集群,架构都不是单台的,而是多台的,一台如果是1千万,那么5台的量级,10台的量级,我们要对他们进行收集,进行分析,难免会在网络传输过程中,丢数据. 日志是什么?日志对于企业来说,有什么作用?用户使用我们的产品,体验如何?用户的客诉,我们能拿出什…
一.引言      本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的详细概念做深入的探讨.本文只是提供了有关如何设置集群.测试和操作集群的说明,而不涉及Redis集群规范中涵盖的细节,只是从用户的角度描述系统的行为.但是,本教程也试图从最终用户的角度来解释有关Redis Cluster的可用性和一致性特征的信息,并以简单易懂的方式讲解.      请注意,本教程需要使用Redis 3.0版本或更高版本.      如果您打算部署Redis的Cluster集群,即使不是严…
一.Redis基础知识 1.1 Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符串.哈希表.列表.集合.有序集合,位图,hyperloglogs等数据类型.内置复制.Lua脚本.LRU收回.事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区. 一般项目都可以使用它. 1.2 Redis资料 Redis的资料还是比较多的,首先推荐Redis中文网站的…
引言 在上篇文章中,我们讲述了Redis的基本知识让读者对Redis有了基本的了解.那么这一节我们就来看一下Redis究竟能做什么. 上一节我们提到了Redis可用作数据库,高速缓存和消息队列代理.这句话不错,Redis确实可以做这些事情,但是不够具体,下面我们就从这三点展开来看一下具体怎么使用,用在哪些场景. 数据库 说Redis可以做数据库,那一点也不假.具体怎么做呢?不是说Redis没有表结构吗,它不是存在内存吗,断电或宕机不就没了吗? 是的,Redis是nosql的,没有数据库表结构,但…
一.redis介绍 (一).Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用. Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储. Redis支持数据的备份,即master-slave模式的数据备份. (二).R…