Redis

Redis中的bitmap详解

1、什么是bitmap? bitmap也叫位图,也就是用一个bit位来表示一个东西的状态,我们都知道bit位是二进制,所以只有两种状态,0和1。 2、为什么要有bitmap? bitmap的出现就是为了大数据量而来的,但是前提是统计的这个大数据量每个的状态...

使用Redis有序集合实现IP归属地查询详解

工作中经常遇到一类需求,根据 IP 地址段来查找 IP 对应的归属地信息。如果把查询过程放到关系型数据库中,会带来很大的 IO 消耗,速度也不能满足,显然是不合适的。 那有哪些更好的办法呢?为此做了一些尝试,下面来详细说明。 构建索引文件 在 GitHub...

基于redis分布式锁实现秒杀功能

最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。 业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多...

redis protocol通信协议及使用详解

简介 redis是一个非常优秀的软件,它可以用作内存数据库或者缓存。因为他的优秀性能,redis被应用在很多场合中。 redis是一个客户端和服务器端的模式,客户端和服务器端是通过TCP协议进行连接的,客户端将请求数据发送到服务器端,服务器端将请求返回给客...

详解Redis基本命令与使用场景

Redis和Memcached对比 其中有一个比较重要的区别是关于其提供的数据结构区别 Memcached 在其数据结构中仅使用字符串和整数。因此,您保存的所有内容都可以是字符串或整数。它很复杂,因为对于整数,您可以做的唯一数据操作是添加或减去它们。如果需...

一篇文章带你彻底搞懂Redis 事务

Redis 事务简介 Redis 只是提供了简单的事务功能。其本质是一组命令的集合,事务支持一次执行多个命令,在事务执行过程中,会顺序执行队列中的命令,其他客户端提交的命令请求不会插入到本事务执行命令序列中。命令的执行过程是顺序执行的,但不能保证原子性。无...

关于Redis网络模型的源码详析

前言 Redis的网络模型是基于I/O多路复用程序来实现的。源码中包含四种多路复用函数库epoll、select、evport、kqueue。在程序编译时会根据系统自动选择这四种库其中之一。下面以epoll为例,来分析Redis的I/O模块的源码。 epo...

Redis未授权访问配合SSH key文件利用详解

前言 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis 未授权访问的问题是一直存在的问题,知道创宇安全研究团队历史上也做过相关的应急,今日,又出现 Red...

Redis快速表、压缩表和双向链表(重点介绍quicklist)

前言 最近在看《Redis的设计与实现》这本书,写的真的是太好了,一下子就看入迷了,谢谢作者。不过在学习的时候发现一个问题,我服务器上安装的是Redis5.0.9版本的,而作者介绍的是Redis3.0版本的,在第一部分将数据结构与对象章节的时候,出现了一些...