静中细思

一生想做码字的诗人

Redis transaction 介绍

Redis 事务(transaction) 每个事务的操作都有begin、commit、rollback begin 指事务的开始 commit 指事务的提交 rollback 指事务的回滚 Redis事务的基础:MULTI 、EXEX、DISCARD、WATCH multi 指事务的开始, exec 指事务的执行, discard 指事务的丢弃。> multi OK ...

Redis HyperLogLog 介绍

场景 思考:如何开发一个统计模块,实现网站每个网页每天的PV数据和 UV 数据 如果统计 PV 那非常好办,给每个网页一个独立的 Redis 计数器就可以了,这个计数器的 key 后缀加上当天的日期。 这样来一个请求,incrby 一次,最终就可以统计出所有的 PV 数据。 但是 UV 不一样,它要去重,同一个用户一天之内的多次访问请求只能计数一次。 这就要求每一个网页请求都需要带...

Redis的过期策略及淘汰策略

设置键的生存时间或过期时间 设置生存时间 通过EXPIRE 或PEXPIRE ,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间(Time To Live,TTL), 在经过指定的秒数或毫秒数之后,服务器就会自动删除生存时间为0的键。 !redis-cli set key value !redis-cli expire key 100 !redis-cli ttl key ...

Redis 分布式锁

比如一个操作要修改用户的状态,修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去。如果这样的操作同时进行了,就会出现并发问题,因为读取和保存状态这两个操作不是原子的。 所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch 线程切换。 分布式锁 分布式锁本质上要实现的目标就是在 Redis 里面占一...

Redis SCAN的使用

SCAN 有时候需要从 Redis 实例成千上万的 key 中找出特定前缀的 key 列表来手动处理数据,可能是修改它的值,也可能是删除 key。这里就有一个问题,如何从海量的 key 中找出满足特定前缀的 key 列表来? Redis 提供了一个简单暴力的指令 keys 用来列出所有满足特定正则字符串规则的 key。 !redis-cli keys key67* 1) "ke...

Redis bitmap

Bitmap (位图) 思考:比如需要记录用户一年的签到记录,签了是 1,没签是 0,要记录 365 天。 为了解决这个问题,Redis 提供了位图数据结构,这样每天的签到记录只占据一个位, 365 天就是 365 个位,46 个字节 (一个稍长一点的字符串) 就可以完全容纳下,这就大大节约了存储空间。 位图不是特殊的数据结构,它的内容其实就是普通的字符串,也就是 byte 数组。 ...

redis 数据结构

Redis 基础数据结构 Redis 有 5 种基础数据结构,分别为:string (字符串)、list (列表)、set (集合)、hash (哈希) 和 zset (有序集合)。 import redis r = redis.StrictRedis(host='localhost',port=6379,db=0) string (字符串) 字符串 string 是 Redis ...

Redis 介绍

概述 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库、缓存服务或消息服务使用。 Redis支持多种数据结构,包括字符串、哈希表、链表、集合、有序集合、位图、Hyperloglogs等。 Redis具备LRU淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集和通过Redis Sentinel实现的高可用方案,同时还支持通过Redis Cluster实现的数据...

Beanstalkd中文协议

安装 官网 [https://kr.github.io/beanstalkd/](https://kr.github.io/beanstalkd/) 安装 -- CentOS and RHEL yum install beanstalkd --enablerepo=epel -- MAC OS X Homebrew ``` brew install beanstalkd ``` ...

GitHub上优秀的Go开源项目

moby(docker) 无人不知的虚拟华平台,开源的应用容器引擎,借助该引擎,开发者可以打包他们的应用,移植到任何平台上。 golang go本身,也是用go语言实现的,包括他的编译器,要研究go源代码的可以看此项目录 lantern 蓝灯,一款P2P的过墙软件,他和SS不一样的是,他是分布式的,P2P的,通过蓝灯,你可以和自由上网的用户共享网络,对方可以自由上网,你...