最新 | 最热门 | 最高评价

+0  谈谈Redis的SETNX

Tag: Technical | Redis
老王 发于 2015年09月14日 22:23 | 点击: 191 | 展开摘要
在 Redis 里,所谓 SETNX,是「SET if Not eXists」的缩写,也就是只有不存在的时候才设置,可以利用它来实现锁的效果,不过很多人没有意识到 SETNX 有陷阱!

比如说:某个查询数据库的接口,因为调用量比较大,所以加了缓存,并设定缓存过期后刷新,问题是当并发量比较大的时候,如果没有锁机制,那么缓存过期的瞬间,大量并发请求会穿透缓存直接查询数据库,造成雪崩效应,如果有锁机制,那么就可以控制只有一个请求去更新缓存,其它的请求视情况要么等待,要么使用过期的

查看全文: http://www.udpwork.com/item/15975.html

+0  Redis 集群扩容

Tag: Redis
alswl 发于 2015年07月26日 15:33 | 点击: 751 | 展开摘要
几乎每一个网站都需要用户登录状态系统,其中核心是存储 Session 的用户登录状态存储系统。
主流的实现之一是使用 Redis 存储用户登录信息,Redis 特点是功能简单、无依赖、
存储结构丰富、有持久化功能。
我大堆糖的 Session 存储系统也正是基于 Redis。

可是 Redis 也存在一些问题,比如 Redis 自身没有 Sharding 功能,Replication
也是在逐步完善完善过程中
(2.4 支持 Replication,2.8 加入 Repli

查看全文: http://www.udpwork.com/item/14433.html

+0  How We Migrate PBs Data from Beijing to Shanghai

Tag: *nix | infrastucture | mongodb | monitoring | mysql | networking | operations | redis
jaseywang 发于 2015年05月13日 00:22 | 点击: 1142 | 展开摘要
We spent more than 6 months migrating our PBs data located in Beijing to Shanghai.

This slide gives you a brief introduction about how we do it.



How We Migrate PBs Data from Beijing to Shanghai from Jasey Wang

Related Posts:
Migrati

查看全文: http://www.udpwork.com/item/14202.html

+0  如何统计Redis中各种数据的大小

Tag: Technical | Redis
老王 发于 2015年03月25日 16:45 | 点击: 2062 | 展开摘要
如果 MySQL 数据库比较大的话,我们很容易就能查出是哪些表占用的空间;不过如果 Redis 内存比较大的话,我们就不太容易查出是哪些(种)键占用的空间了。

有一些工具能够提供必要的帮助,比如 redis-rdb-tools 可以直接分析 RDB 文件来生成报告,可惜它不能百分百实现我的需求,而我也不想在它的基础上二次开发。实际上开发一个专用工具非常简单,利用 SCAN 和 DEBUG 等命令,没多少行代码就能实现:

<?php

$patterns = arra

查看全文: http://www.udpwork.com/item/14027.html

+0  cr-ssdb

Tag: all | redis
ning 发于 2014年07月24日 15:12 | 点击: 957 | 展开摘要
Table of Contents

1   问题

2   代码
2.1   util

2.2   请求处理模型
2.2.1   Link

2.2.2   RedisLink

2.2.3   命令表

2.2.4   处理模型

2

查看全文: http://www.udpwork.com/item/12915.html

+0  使用 Twemproxy 来做 SSDB 负载均衡

Tag: SSDB | Redis | twemproxy
ideawu 发于 2014年06月30日 14:54 | 点击: 1537 | 展开摘要
Twemproxy 是由 Twitter 公司开发的一个支持 Redis 协议的代理服务器, 可用于 Redis 集群的负载均衡, 高可用性等.

SSDB 数据库也支持 Redis 协议, 所以可以直接使用 Twemproxy 而不需要做任何特殊改动, 如果你原来使用 Redis 现在切换到 SSDB 的话. 你不仅可以使用 Twemproxy + SSDB, 还可以使用 Twemproxy + SSDB + Redis.

已有多个用户在线上业务中使用了 Twemprox

查看全文: http://www.udpwork.com/item/12691.html

+0  SSDB 支持位(BIT)操作

Tag: SSDB | Redis
ideawu 发于 2014年06月08日 10:14 | 点击: 1216 | 展开摘要
最近, 知名的高性能 NoSQL 数据库 SSDB 新增了位(BIT)操作功能, 用户可以使用和 Redis 一样的 getbit, setbit, bitcount 等操作.

本次 1.6.8.8 版本升级主要包括:

新增位操作支持: getbit, setbit, bitcount

新增字符串操作: strlen, substr

完善过期时间操作接口, 新增: expire, ttl 命令

Related posts:
SSDB 支持 TTL 过期机制

性能超

查看全文: http://www.udpwork.com/item/12602.html

+0  如何在Redis里按模式删除数据

Tag: Technical | Redis
老王 发于 2014年04月11日 16:40 | 点击: 1399 | 展开摘要
一台Redis服务器在很短的时间里消耗了几十个G的内存,最终因为SWAP而宕机。因为这台服务器的社会背景比较复杂,所以一时无法判断犯罪嫌疑人到底是谁。

最开始的直觉是认为肯定有人保存了大体积的数据,于是问题就变成了找出哪些键占用的空间比较大,DBA同事用了redis-rdb-tools等工具来分析数据文件。可惜的是虽然找到了一些大体积的键,但最终都排除了嫌疑,问题似乎陷入了僵局。

在被直觉带入死胡同之后,我们开始调整调查的角度:即便一个键本身占用的空间并不大,但是如果相同

查看全文: http://www.udpwork.com/item/12113.html

+0  hiredis 源码学习

Tag: C | Redis | hiredis
alswl 发于 2014年03月30日 15:41 | 点击: 3334 | 展开摘要
前段时间学习 Redis 时候,听到 hiredis 的大名,正好也在做异步的学习,就找来代码学习一下。
我几乎不太会 C,仅限于最简单的语法,完全没有在生产环境中写过,
所以先看个 Client 简单代码,下次看 Memcached 代码应该会更顺畅一些。

Hiredis 是用 C 写的 Redis 客户端,对 Redis 协议进行了简单的封装,
同时提供了同步和异步的两种 API。Hiredis 的代码位于
https://github.com/redis/hiredi

查看全文: http://www.udpwork.com/item/12034.html

+0  Redis 到底有多快[译文]

Tag: 性能 | Redis | benchmark | 译文
alswl 发于 2014年02月23日 22:38 | 点击: 5828 | 展开摘要
原文地址 http://redis.io/topics/benchmarks。

拖了一个半月的稿子~

Redis 自带了一个叫 redis-benchmark 的工具来模拟 N 个客户端同时发出 M 个请求。
(类似于 Apache ab 程序)。你可以使用 redis-benchmark -h 来查看基准参数。

以下参数被支持:

Usage: redis-benchmark [-h <host>] [-p <port>] [-c &l

查看全文: http://www.udpwork.com/item/11757.html

+0  百行代码实现一个简单的Zset(SortedSet)

Tag: C/C++语言编程 | Redis
ideawu 发于 2014年02月10日 20:28 | 点击: 1181 | 展开摘要
排序的集合(Zset, SortedSet)是这样的一种集合数据结构, 集合中的元素不可重复, 而且元素之间根据每一个元素的权重来排序. Zset 是一种非常重要和应用广泛的数据结构, 是 Redis 数据库所支持的最核心一种. Zset 可用于排行榜, 好友列表, 去重, 历史记录等业务需求. 你可以理解一个 Zset 是一个下面结构的数据库表:

item, score
UNIQUE, INDEX(int)

Item 列被加了 UNIQUE 约束, 所以可以去重.

查看全文: http://www.udpwork.com/item/11682.html

+0  从 Redis 迁移到 SSDB

Tag: SSDB | LevelDB | Redis
ideawu 发于 2014年01月04日 13:20 | 点击: 1460 | 展开摘要
因为越来越多的用户希望从 Redis 迁移到 SSDB, 所以我提供了一个数据迁移的脚本, 用于方便地将 Redis 数据拷贝到 SSDB 中. 这个脚本是一个 PHP 脚本, 所以要求你的环境要安装 PHP, 如果你的应用原来就是 PHP 的, 那当然没有什么问题. 如果是其它语言的用户, 那么就需要安装 PHP 了.

也许用 C 语言写一个迁移脚本会更好, 但同样需要引入 Redis 的库, 暂时还不想这么做.

用法:

php redis-import.php re

查看全文: http://www.udpwork.com/item/11472.html
|<<<12345>>>| 一共5页, 52条记录