今天装了个centos2.6.4 然后装jdk,完了redis2.6.4
装redis2.6.4折腾了老半天,缺了很多东西,连gcc都没有
无语中……
废话不多说,直接上过程
1、报错一 没用gcc
安装过程
yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make
注意gcc依赖了很多东西,有些包可能系统已经 装了,有些没有,防止出意外,最好都走一遍
2、报错二,没有tcl8.5, 安装tcl8.5,过程如下
下载地址:http://downloads.sourceforge.net/tcl/tcl8.5.10-src.tar.gz
安装过程
tar -zxvf tcl8.5.tar.gz
./configure
make
make install
3、安装redis
make
make test //检查一下,看看有没有问题
make install
如果make继续报错,信息如下:error: jemalloc/jemalloc.h: No such file or directory
执行 make MALLOC=libc 就行
注意的是,为了防止出意外,make失败后在make的话,清理一下,执行make clean
祝大家安装成功!!!!
下面是一些介绍:
Redis2.6已经发布了(http://redis.io/download),下载后,在make时一堆编译错误,后来看issue,跟linux系统版本及位数有关。
昨天作者 antirez发布了2.6.2,此版本修复了一些linux版本不兼容导致make不通过的问题,可是下下来以后,发现在测试机编译还是有些问题,与是 在issue上提出一个问题:(https://github.com/antirez/redis/issues/736#issuecomment- 9848046) 早上来的时候,看到大牛们热心的回复,真的很感动。在测试机上,由于系统 是32位的,导致编译时没通过,首先我立马确定了这个问题,在64位测试机上测试时,发现果然编译可以通过,然后在32位上,跟据提示,在 Makefile中增加一条CFLAGS= -march=i686,编译也顺利通过了,顿时感觉舒畅很多!
下载地址:http://redis.googlecode.com/files/redis-2.6.2.tar.gz
然后tar, make,即可。(make前,如果确认自己的测试机是32位linux,在src/Makefile文件中的头部加上CFLAGS= -march=i686,可参考isSUSE中相关回答)
修改对应的redis.conf,然后启动,即可进行测试了。
一.此版本主要更新的功能有:
1.支持lua脚本。
2.VM(虚拟内存)去掉了。
3.对于client的limit限制变成无限制。
4.aof性能提升了不少。
5.key的过滤时间可以支持毫秒级别了,原来是秒。
6.list与hash 的属性filed或value包含小整数,内存优化列好(使用了jemalloc,以前是malloc)。
7.提供了BITCOUNT与BITOP,前者支持位值count,后者支持了位操作。(以前只支持key-value 的置位操作)
8.支持新命令dump以及restore ,即序列化与反序列化操作。
9.大数据存储性能优化等。
以上功能我比较关注的一个是lua脚本支持,一个是位操作的功能扩展。
对于位操作的增加,在2.4已经存在,通过setbit/getbit,相关操作(要注意大小端的问题,存储读取数据时)。
此次增加了bitcount,以及bitop操作,通过位操作,来增强一些统计功能等相关功能的实现应该有很大的帮忙。
对于我们的系统里,以及用bit位记录相关数据,但是一直不能位操作,一直在考虑是否自己增加,在2.6作者实现了。还是非常赞一个。
二.相关简单测试:
使用了jemalloc,以及相关代码的优化,redis2.6的性能一定有一定提升.
使用redis2.6.2与redis2.4.4相比。
相同环境下,进行一万次set,一万次get操作,两者所花费的时间如下:
redis2.6.2 redis2.4.4
set操作 5938ms 6109ms
get操作 5985ms 5812ms
以上为开发机上进行测试,并不能体现redis完整的性能,但是相同的环境下,可以测试redis不同版本的性能问题。从以上set get操作来看,redis2.6性能上还是有部分提升,但不大。
___________________________________________________________________________________________________________________
Redis 是 key-value 的NOSQL、独爱那些小而热的数据、典型"萝莉控"
至于啥叫 key-value 呢?用RDBMS的观点、一言以辟之:
所谓 key:主键列
所谓 value:其他列
Redis 近几年很火、火到抬头不见、低头见
抬头望国外:著名成人网站 youporn 采用 100% Redis 每天 1亿 PV、解决了无数屌丝 YY 问题
低头思国内:新浪微博走的 Redis 之路、那叫一把眼泪一把辛酸呀
千里之行、始于安装、Let's 谈谈一次简单的安装步骤
㈠ 安装 Redis
- # wget https://redis.googlecode.com/files/redis-2.6.13.tar.gz
- # tar -zxv -f redis-2.6.13.tar.gz
- # cd redis-2.6.13
- # cd src
- # make
- # mkdir /etc/redis/
- # cp redis.conf /etc/redis/redis.conf
- # echo "1" > /proc/sys/vm/overcommit_memory
- # make install
㈡ 设置 Redis 为后台守护进程
- # cat /etc/redis/redis.conf | grep -in --color=auto 'daemonize'
- 16:# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
- 17:daemonize yes
㈢ 启动 Redis
- # redis-server /etc/redis/redis.conf
- # ps aux | grep redis
- root 32111 0.0 0.0 31496 1500 ? Ssl 16:38 0:00 redis-server /etc/redis/redis.conf
- root 32122 0.0 0.0 5128 676 pts/2 R+ 16:39 0:00 grep redis
㈣ 测试 Redis
- # redis-cli
- redis 127.0.0.1:6379> set name "David Lin"
- OK
- redis 127.0.0.1:6379> get name
- "David Lin"
- redis 127.0.0.1:6379> hset 192.168.1 David David@redis
- (integer) 1
- redis 127.0.0.1:6379> hget 192.168.1 David
- "David@redis"
- redis 127.0.0.1:6379> hset 192.168.1 root root@redis
- (integer) 1
- redis 127.0.0.1:6379> hget 192.168.1 root
- "root@redis"
- redis 127.0.0.1:6379> hkeys 192.168.1
- 1) "David"
- 2) "root"
- redis 127.0.0.1:6379> hvals 192.168.1
- 1) "David@redis"
- 2) "root@redis"
- redis 127.0.0.1:6379> hgetall 192.168.1
- 1) "David"
- 2) "David@redis"
- 3) "root"
- 4) "root@redis"
- redis 127.0.0.1:6379> type name
- string
- redis 127.0.0.1:6379> type 192.168.1
- hash
- redis 127.0.0.1:6379> quit
㈤ 关闭 Redis
- # redis-cli shutdown
㈥ 可能的错误
安装过程、或许您可能会有幸遇见:
- zmalloc.o: In function `zmalloc_used_memory':
- /root/redis/redis-2.6.13/src/zmalloc.c:223: undefined reference to `__sync_add_and_fetch_4'
- collect2: ld 返回 1
- make[1]: *** [redis-server] 错误 1
- make[1]: Leaving directory `/root/redis/redis-2.6.13/src'
- make: *** [all] 错误 2
大概是内核有点老了、跟不上最新的Redis
- [root@odd ~]# uname -r
- 2.6.18-308.el5xen
解决方案:
安装最新版的Tcl
- # wget http://nchc.dl.sourceforge.net/project/tcl/Tcl/8.6.0/tcl8.6.0-src.tar.gz
- # tar -zxv -f tcl8.6.0-src.tar.gz
- # cd tcl8.6.0
- # cd unix
- # ./configure
- # make
- # make test
- # make install
之后再做 2 件事:
① 在src/Makefile开头加 CFLAGS= -march=i686
② 编辑src/.make-settings里的OPT,改为OPT=-O2 -march=i686
行文至此、接近尾声、安装过程并不复杂、至于测试的命令嘛、下回更精彩 +_+