« 类别 redis 下的文章

quickdb另辟捷径高效解决NOSQL数据库 数据持久性问题

目前的NOSQL主要分为两种,一种是基于内存型的如redis、memcached,一种是基于磁盘型的如Tokyo Tyrant、Tokyo Cabinet、Berkeley DB。 redis、memcached这类内存型NOSQL。虽然读写效率很高,但是有一个大问题,就是数据库持久性。memcached是一重启进程数据就没 了。redis支持两种持久化方式,一种是 Snapshotting(快照)也是默认方式,另一种是Append-only file(缩写aof)的方式。但是这两种效率都不高。 怎样才能做到高效读写,又能保持数据持久性了? quickdb 是 一款基于内存文件系统的 HashTable数据结构的Key-Value数据引擎. . 什么是内存文件系统了?就是操作系统把系统内存划出一部分当作硬盘使用。你可以像操作磁盘那样的操作内存。但效率远远比硬盘来的快多了。通俗叫做内存文件 系统,只要服务器不重起数据将一直都在。 通俗的来讲 redis、memcached是自己申请内存管理数据。当进程重启或者挂了就会丢失数据。quickdb是把实体数据储存在内存文件系统里的。当 quic…
阅读更多……

Redis内存使用优化与存储

Redis常用数据类型 Redis最为常用的数据类型主要有以下五种: String Hash List Set Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的: 首先Redis内部使用一个redisObject对象来表示所有的key和value,redisObject最主要的信息如上图所示:type 代表一个value对象具体是何种数据类型,encoding是不同数据类型在redis内部的存储方式,比如:type=string代表value存 储的是一个普通字符串,那么对应的encoding可以是raw或者是int,如果是int则代表实际redis内部是按数值型类存储和表示这个字符串 的,当然前提是这个字符串本身可以用数值表示,比如:123 456这样的字符串。 这里需要特殊说明一下vm字段,只有打开了Redis的虚拟内存功能,此字段才会真正的分配内存,该功能默认是关闭状态的,该功能会在后面具体描 述。通过上图我们可以发现Redis使用redisObject来表示所有的key/value数据是比较浪费内存的…
阅读更多……

构建高性能的微博系统(QCon Beijing 2011演讲)

High Performance Weibo QCon Beijing 2011 Popout View more presentations from Tim Y . 提示: QCon网站提供此演讲下载的PDF是老版,大约有30%的内容改变,已经通知Update Slideshare文档在对方网站可浏览及下载,但是下载只提供Mac OS Keynote格式,PDF格式太大未提供(上传转换1小时未完成),有需要可以到 QCon Beijing 官网下载
阅读更多……

Redis 错误 :Cannot assign request

在CentOS上对Redis的性能进行性能测试时,数量一加大就会报: Could not connect to Redis at 127.0.0.1:6379: connect: Cannot assign request 经查官方Wiki是系统网络配置问题已经解决: echo 1 /proc/sys/net/ipv4/tcp_tw_reuse 具体参见:http://code.google.com/p/redis/wiki/Benchmarks @sebpaa: try this: sudo sysctl -w net.inet.tcp.msl=1000 if you are using a Mac. In Linux instead use the following: echo 1 /proc/sys/net/ipv4/tcp_tw_reuse
阅读更多……

Redis主从服务器

配置主从服务器 Redis主从服务器的搭建很简单,只要少许配置即可,为了演示的方便,我们就在一台服务器上配置: 前提是你已经有了一台Redis服务器,如果没有可以参考 我以前的文章 安装。下面看看如何配置从服务器: 假设主服务器的配置文件是:/etc/redis.conf,我们复制一份作为从服务器的配置文件: cp /etc/redis.conf /etc/redis_slave.conf 并作修改: # vi /etc/redis_slave.conf port 6380 dbfilename dump_slave.rdb slaveof 127.0.0.1 6379 主服务器的端口使用的是缺省的6379,从服务器的端口我们设置成6380。 然后插入一些测试数据: redis-benchmark 由于我们没有设定任何参数,所以使用的是缺省端口(6379),在本例中就是主服务器。 然后启动从服务器: redis-server /etc/redis_slave.conf 确认一下是否都正常启动了: ps -ef | grep redis 进入数据目录,查一下数据文件的散列: md5sum…
阅读更多……

Redis指令手册中文版

连接控制 QUIT :退出,关闭连接 代码实例:连接 退出 telnet localhost 6379QUIT AUTH : 密码验证 举例说明 1、首先需要在redis的配置文件redis.conf中requirepass注释掉的内容,设置需要密码连接,否则auth任何密码都通过 2、重新启动redis 3、验证 auth testpassword,testpassword是我在配置文件中设置的requirepass testpassword 4、redis 服务器的速度众所周知,因此官方文件中 提醒设置比较复杂的密码,防止机器破解 telnet localhost 6379Escape character is '^]'.auth dsddsd-ERR invalid passwordkeys global*-ERR operation not premittedauth ddddd-ERR invalid passwordauth testpassword+OK 管理数据操作 EXISTS :判断一个键是否存在;存在返回 1;否则返回0; 举例: EXISTS burce:0SE…
阅读更多……

Redis 简介

简介 Redis是一个key-value存储系统。和Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的 value类型,除了和string外,还支持lists(链表)、sets(集合)和zsets(有序集合)几种数据类型。这些数据类型都支持 push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。 性能 下面是官方的bench-mark数据: The test was done with 50 simultaneous clients performing 100000 requests. The value SET and GET is a 256 bytes string. The Linux box is running Linux 2.6, it’s Xeon X3320 2.5Ghz. Text executed using the loopback interface (127.0.0.1). Results: about 110000 SETs per second, about 81000 GETs…
阅读更多……

redis 分析

1          简介 redis是一个类似memcached的key/value存储系统,它支持存储的value类型相对较多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 2          分析 2.1         协议 本文是基于当前最新版本redis 1.2.6版本进行阅读分析的,支持的主要功能协议列表如下: string get/set/setnx/del/exists/incr/decr/mget list rpush/lpush/rpop/lpop/llen/lindex/lset/lrange/ltrim/lrem/rpoplpush set sadd/srem/smove/sismember/scard/spop/srandmember/ sinter/sinterstore…
阅读更多……

Redis – 超高性能 key-value 数据库

Redis 已经出2.0了,是出手的时候了。 Redis的介绍 数据库主要类型有对象数据库,关系数据库,键值数据库等等,对象数据库太超前了,现阶段不提也罢;关系数据库就是平常说的MySQL,PostgreSQL这些熟的不能再熟的东西,至于键值数据库则是本文要着重说的,其代表主要有 MemcacheDB , Tokyo Cabinet 等等。 Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。从而使它的位置处于关系数据库和键值数 据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据,而且还能完成排序(SORT) 等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性,除此以外,还支持主从复制等功能。 详细描述参见 官方手册 ,同时,官方提供了一个名为 Retwis 的项目的源代码,可以对照着 官方介绍 学习,注意其中关于Data Layout的描述,其他没什么。 项目实践中,多以关系数据库为主,不过合理的使用Redis这样的键值数据库,往往能扬长避短,…
阅读更多……
浙ICP备08010023号