Redis简介和安装

  • A+
所属分类:Linux

1 Redis简介
1.1 Redis是什么
REmote DIctionary Server(Redis) 是一个由Salvatore
Sanfilippo写的key-value存储系统。Redis提供了一些丰富的数据结构,包括lists, sets, ordered sets
以及 hashes ,当然还有和Memcached一样的 strings结构.Redis当然还包括了对这些数据结构的丰富操作。

Redis的优点

  • 性能极高 – Redis能支持超过 100K+ 每秒的读写频率。
  • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
  • 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

1.2 数据类型

  • String类型
  • List类型
  • 集合(Sets)类型
  • 有序集合(Sorted Sets)类型
  • Hash类型

1.3 Publish/Subscribe

  • 订阅信息管道
  • 按一定模式批量订阅

1.4 数据过期设置

1.5 事务性

1.6 持久化
Redis的所有数据都存储在内存中,但是他也提供对这些数据的持久化。
数据快照 – 数据快照的原理是将整个Redis中存的所有数据遍历一遍存到一个扩展名为rdb的数据文件中
Append-Only File(追加式的操作日志记录) – Redis还支持一种追加式的操作日志记录,叫append only
file,其日志文件以aof结局,我们一般各为aof文件。要开启aof日志的记录,你需要在配置文件中进行设置:appendonly yes

1.7 管理命令
Redis支持多个DB,默认是16个,你可以设置将数据存在哪一个DB中,不同DB间的数据具有隔离性。也可以在多个DB间移动数据。

1.8 客户端
Redis的客户端很丰富,几乎所有流行的语言都有其客户端,可以上Redis的Clients页面去查找,地址:http://redis.io/clients


2 安装Redis服务端
官网下载源码:http://redis.io/download

wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz
tar xzf redis-2.6.14.tar.gz
cd redis-2.6.14
make #redis的安装非常简单,已经有现成的Makefile文件,直接运行make命令即可

注:
编译redis 2.6 由于系统有点老,以至于编不过,报错undefined reference to__sync_add_and_fetch_4′
解决方法:http://www.linuxeye.com/configuration/1473.html

此时会在src目录下生成几个可执行文件:redis-benchmark,redis-check-aof,redis-check-
dump,redis-cli,redis-sentinel,redis-server。这几个文件,加上一个redis.conf就构成了整个
redis的最终可用包。

下面你可以把这几个可执行文件和redis.conf文件复制到你所希望的地方,比如我是复制到/usr/local/redis/bin 和/usr/local/redis/etc 下面的,命令如下:

mkdir -p /usr/local/redis/{bin,etc,var}
/bin/cp src/{redis-benchmark,redis-check-aof,redis-check-dump,redis-cli,redis-sentinel,redis-server} /usr/local/redis/bin/
/bin/cp redis.conf /usr/local/redis/etc/
ln -s /usr/local/redis/bin/* /usr/local/bin/
sed -i 's@pidfile.*$@pidfile /var/run/redis.pid@' /usr/local/redis/etc/redis.conf
sed -i 's@logfile.*$@logfile /usr/local/redis/var/redis.log@' /usr/local/redis/etc/redis.conf
sed -i 's@^dir.*$@dir /usr/local/redis/var@' /usr/local/redis/etc/redis.conf
sed -i 's@daemonize no@daemonize yes@' /usr/local/redis/etc/redis.conf
echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf
sysctl -p 

注意,默认复制过去的redis.conf文件的daemonize参数为no,所以redis不会在后台运行,这时要测试,我们需要重新开一个终端。修改为yes则为后台运行redis。另外配置文件中规定了pid文件,log文件和数据文件的地址,如果有需要先修改,默认log信息定向到
stdout。

配置开机自启动redis-server

wget http://mirrors.linuxeye.com/oneinstack/init.d/Redis-server-init-CentOS
mv Redis-server-init-CentOS /etc/init.d/redis-server
chmod +x /etc/init.d/redis-server
chkconfig --add redis-server
chkconfig redis-server

启动redis:

service redis-server start

测试:

# /usr/local/redis/bin/redis-cli
redis 127.0.0.1:6379> set name linuxeye
OK
redis 127.0.0.1:6379> get name
"linuxeye"

关闭redis:

service redis-server stop

Thu Aug 22 21:09:48 CST 2013

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: