Redis简介

什么是Redis

Redis (Remote Dictionary Server)远程字典服务器,是用C语言开发的一个开源的高性能键值对( key-value )内存数据库。

它提供了五种数据类型来存储值:字符串类型、散列类型、列表类型、集合类型、有序集合类型

它是一种 NoSQL 数据存储。

Redis发展历史

2008年,意大利的一家创业公司 Merzia 推出了一款基于 MySQL 的网站实时统计系统 LLOOGG ,然而没
过多久该公司的创始人 Salvatore Sanfilippo ( antirez)便 对MySQL的性能感到失望,于是他决
定亲自为 LLOOGG 量身定做一个数据库,并于2009年开发完成,这个数据库就是Redis。

  • Redis2.6

    Redis2.6在2012年正式发布,主要特性如下:

    服务端支持Lua脚本、去掉虚拟内存相关功能、键的过期时间支持毫秒、从节点提供只读功能、两个新的位图命令:bitcount和bitop、重构了大量的核心代码、优化了大量的命令。

  • Redis2.8

    Redis2.8在2013年11月22日正式发布,主要特性如下:

    添加部分主从复制(增量复制)的功能、可以用bind命令绑定多个IP地址、Redis设置了明显的进程名、发布订阅添加了pubsub命令、Redis Sentinel生产可用

  • Redis3.0

    Redis3.0在2015年4月1日正式发布,相比于Redis2.8主要特性如下:

    Redis Cluster:Redis的官方分布式实现(Ruby)、全新的对象编码结果、lru算法大幅提升、部分命令的性能提升

  • Redis3.2

    Redis3.2在2016年5月6日正式发布,相比于Redis3.0主要特征如下:

    添加GEO相关功能、SDS在速度和节省空间上都做了优化、新的List编码类型:quicklist、从节点读取过期数据保证一致性、Lua脚本功能增强等

  • Redis4.0

    Redis4.0在2017年7月发布,主要特性如下:

    提供了模块系统,方便第三方开发者拓展Redis的功能、PSYNC2.0:优化了之前版本中,主从节点切换必然引起全量复制的问题、提供了新的缓存剔除算法:LFU(Last Frequently Used),并对已有算法进行了优化、提供了RDB-AOF混合持久化格式等

Redis应用场景

  • 缓存使用,减轻DB压力

  • DB使用,用于临时存储数据(字典表,购买记录)

  • 解决分布式场景下Session分离问题(登录信息)

  • 任务队列(秒杀、抢红包等等) 乐观锁

  • 应用排行榜 zset

  • 签到 bitmap

  • 分布式锁

  • 冷热数据交换

Redis单机版安装和使用

Redis下载

官网地址:http://redis.io/

中文官网地址:http://www.redis.cn/

下载地址:http://download.redis.io/releases/


Redis安装环境

Redis 没有官方的 Windows 版本,所以建议在 Linux 系统上安装运行。

我们使用 CentOS 7 作为安装环境。

Redis安装

  • 第一步:安装 C 语言需要的 GCC 环境

    1
    2
    3
    [root@Linux121 ~]# yum install -y gcc-c++

    [root@Linux121 ~]# yum install -y wget
  • 第二步:下载并解压缩 Redis 源码压缩包

    1
    2
    3
    4
    5
    [root@Linux121 ~]# cd /opt/lagou/software

    [root@Linux121 software]# wget http://download.redis.io/releases/redis-5.0.5.tar.gz

    [root@Linux121 software]# tar -zxf redis-5.0.5.tar.gz
  • 第三步:编译 Redis 源码,进入 redis-5.0.5 目录,执行编译命令

    1
    2
    3
    [root@Linux121 software]# cd redis-5.0.5/src

    [root@Linux121 src]# make
  • 第四步:安装 Redis ,需要通过 PREFIX 指定安装路径

    1
    2
    3
    [root@Linux121 src]# mkdir /usr/redis -p

    [root@Linux121 src]# make install PREFIX=/usr/redis
  • 第五步:查看安装路径是否安装完成

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [root@Linux121 src]# cd /usr/redis
    [root@Linux121 redis]# cd bin
    [root@Linux121 bin]# ll
    总用量 32736
    -rwxr-xr-x. 1 root root 4366680 7月 8 04:21 redis-benchmark
    -rwxr-xr-x. 1 root root 8111936 7月 8 04:21 redis-check-aof
    -rwxr-xr-x. 1 root root 8111936 7月 8 04:21 redis-check-rdb
    -rwxr-xr-x. 1 root root 4806920 7月 8 04:21 redis-cli
    lrwxrwxrwx. 1 root root 12 7月 8 04:21 redis-sentinel -> redis-server
    -rwxr-xr-x. 1 root root 8111936 7月 8 04:21 redis-server

Redis启动

前端启动

  • 启动命令: redis-server

    1
    2
    3
    [root@Linux121 ~]# cd cd /usr/redis/bin

    [root@Linux121 bin]# ./redis-server

  • 关闭命令: ctrl+c

  • 启动缺点:客户端窗口关闭则 redis-server 程序结束,不推荐使用此方法

后端启动(守护进程启动)

  • 第一步:拷贝 redis-5.0.5/redis.conf 配置文件到 Redis 安装目录的 bin 目录

    1
    [root@Linux121 ~]# cp /opt/lagou/software/redis-5.0.5/redis.conf /usr/redis/bin/
  • 第二步:修改 redis.conf

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [root@Linux121 ~]# cd /usr/redis/bin/

    [root@Linux121 bin]# vim redis.conf

    # 将`daemonize`由`no`改为`yes`
    daemonize yes
    # 默认绑定的是回环地址,默认不能被其他机器访问
    # bind 127.0.0.1
    # 是否开启保护模式,由yes该为no
    protected-mode no
  • 第三步:启动服务

    1
    [root@Linux121 bin]# ./redis-server redis.conf
  • 后端启动的关闭方式

    1
    [root@Linux121 bin]# ./redis-cli shutdown
  • 命令说明


    redis-server :启动 redis 服务

    redis-cli :进入 redis 命令客户端

    redis-benchmark : 性能测试的工具

    redis-check-aof : aof 文件进行检查的工具

    redis-check-dump : rdb 文件进行检查的工具

    redis-sentinel : 启动哨兵监控服务

Redis命令行客户端

命令格式

1
[root@Linux121 bin]# ./redis-cli -h 127.0.0.1 -p 6379

-h:redis服务器的ip地址

-p:redis实例的端口号

如果不指定主机和端口也可以,默认主机地址是127.0.0.1,默认端口是6379

1
[root@Linux121 bin]# ./redis-cli

注意: 打开命令行客户端,必须启动redis服务,前端打开新窗口就可以