Redis简介和安装

    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

    • 本文由 发表于 2013-04-09
    • 转载请务必保留本文链接:https://linuxeye.com/308.html
    Nginx Lua Redis防止CC攻击 Linux

    Nginx Lua Redis防止CC攻击

    Nginx Lua Redis防止CC攻击实现原理:同一个外网IP、同一个网址(ngx.var.request_uri)、同一个客户端(http_user_agent)在某一段时间(CCseconds...
    匿名

    发表评论

    匿名网友

      • avatar 明天更好’

        很好