Redis学习笔记(一) 初识 Redis

简介

  我所在的公司是一个以线下业务为主的公司,软件这一块的东西可以说是手工作坊,技术上的东西全靠大家自己折腾。最近也是觉得自己在社会主义的怀抱里安逸了太久,要提高思想政治觉悟,不能忘了资本主义的黑暗,要多学一点技术,武装自己,同资本主义做斗争,Redis 就是众多武器中的一个。

  Redis 全名 Remote Dictionary Server,是一个使用 ANSI C 预研编写的、遵守 BSD 协议的、支持网络的、可基于内存可持久化的、高性能 Key-Value 数据库,同时他也提供了多种语言(Java、C/C++、C#、PHP、JavaScript等)的 API。

  相交于其他的 Key-Value 数据库,Redis 的有如下优点:

  • Redis 是开源免费的,遵守 BSD 协议;
  • Redis 性能极高,读取数度能达到110000次/s,写的速度是81000次/s;
  • Redis 数据类型更为丰富,除了 string 类型之外,还支持 hash、list、set、zset 等数据的存储;
  • Redis 的所有操作都是原子的;
  • Redis 运行在内存中,但是可以持久化到磁盘,且支持 master-slave 模式的数据备份。

Windows 安装

  官网:http://redis.io/

  大家可以根据需要选择自己需要的版本自行下载,本篇文章以 Windows 环境下的安装为例:

  解压压缩包到指定位置,进入命令行,切换到解压的位置:64位机请进入 64bit 文件夹下,32位机请进入 32bit 文件夹下,运行 redis-server.exe redis.conf 命令启动服务端,会显示如下界面: Redis学习笔记(一) 初识 Redis

运行成功后,请不要关闭当前窗口,不然无法访问服务端,如果觉得这样运行过于麻烦,你也可以将Redis注册为系统服务运行如下命令即可:

D:\Runtime\redis_2.4.5 --service-install D:\Runtime\redis \windows.conf

  启动一个新的命令行窗口,切换到 Redis 目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379进入 Redis 的客户端界面:

Redis学习笔记(一) 初识 Redis

在这个窗口中做一个简单的演示,设置键值对 set name lofei,再使用 get name 取出,如下:

Redis学习笔记(一) 初识 Redis

Linux 安装

  不过Redis大多是部署在 Linux 服务器上的,这里顺便提一下 linux 服务器的安装:

$ wget http://download.redis.io/releases/redis-2.8.24.tar.gz
$ tar xzf redis-2.8.24.tra.gz
$ cd redis-2.8.24
$ make

  启动服务端:

$ cd src
$ ./redis-server redis.conf

  启动客户端:

$ cd src
$ ./redis-cli
redis> set name lofei
OK
redis> get name
"lofei"

  可视化管理工具推荐:RedisDesktopManager,大家可以到官网下载,不过前期学习还是建议使用命令进行操作。

  安装完成后,很多人想把Redis加入到开机启动中,按如下步骤操作(以3.0.7位例):

  1. 打开配置文件redis.conf将节点daemonize的值改为yes;
  2. 将redis-3.0.7拷贝到/usr/local/bin/redis_3.07下;
  3. 在/etc/init.d下创建redis文件,并添加内容如下:
    ###########################
    # chkconfig: 2345 10 90  
    # description: Start and Stop redis  
    
    PATH=/usr/local/bin:/sbin:/usr/bin:/bin  
         
    REDISPORT=6379  
    EXEC=/usr/local/bin/redis_3.0.7/src/redis-server  
    REDIS_CLI=/usr/local/bin/redis_3.0.7/src/redis-cli  
         
    PIDFILE=/var/run/redis.pid  
    CONF="/usr/local/bin/redis_3.0.7/redis.conf"  
         
    case "$1" in  
        start)  
            if [ -f $PIDFILE ]  
            then  
                    echo "$PIDFILE exists, process is already running or crashed"  
            else  
                    echo "Starting Redis server..."  
                    sudo $EXEC $CONF  
            fi  
            if [ "$?"="0" ]   
            then  
                  echo "Redis is running..."  
            fi  
            ;;  
        stop)  
            if [ ! -f $PIDFILE ]  
            then  
                    echo "$PIDFILE does not exist, process is not running"  
            else  
                    PID=$(cat $PIDFILE)  
                    echo "Stopping ..."  
                    $REDIS_CLI -p $REDISPORT SHUTDOWN  
                    while [ -x ${PIDFILE} ]  
                   do  
                        echo "Waiting for Redis to shutdown ..."  
                        sleep 1  
                    done  
                    echo "Redis stopped"  
            fi  
            ;;  
       restart|force-reload)  
            ${0} stop  
            ${0} start  
            ;;  
      *)  
        echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2  
            exit 1  
    esac  
    ##############################
  4. 为redis赋予执行权限: chmod +x /etc/init.d/redis 
  5. 设定开机启动: chkconfig redis on 

目录结构

  Redis 由5个可执行文件和1个配置文件构成,他们的作用如下:

  • /redis-server:Redis 服务器的启动程序;
  • /redis-cli:Redis 的命令行操作工具;
  • /redis-benchmark:Redis 性能测试工具,测试 Redis 运行环境的读写性能
  • /redis-check-aof:用于修复出问题的 AOF 文件;
  • /redis-check-dump:用于修复出问题的 dump.rdb 文件;
  • /redis.conf:Redis 的配置文件。