Redis实战

什么是Redis

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如
下:

  • 字符串类型
  • 散列类型
  • 列表类型
  • 集合类型
  • 有序集合类型

Redis历史发展

2008年,意大利的一家创业公司Merzia推出了一款基于MySQL的网站实时统计系统LLOOGG,然而没过多久该公司的创始人 Salvatore Sanfilippo便对MySQL的性能感到失望,于是他决定亲自为LLOOGG量身定做一个数据库,并于2009年开发完成,这个数据库就是Redis。不过Salvatore Sanfilippo并不满足只将Redis用于LLOOGG这一款产品,而是希望更多的人使用它,于是在同一年Salvatore Sanfilippo将Redis开源发布,并开始和Redis的另一名主要的代码贡献者Pieter Noordhuis一起继续着Redis的开发,直到今天。

Salvatore Sanfilippo自己也没有想到,短短的几年时间,Redis就拥有了庞大的用户群体。Hacker News在2012年发布了一份数据库的使用情况调查,结果显示有近12%的公司在使用Redis。国内如新浪微博、街旁网、知乎网,国外如GitHub、Stack Overflow、Flickr等都是Redis的用户。

VMware公司从2010年开始赞助Redis的开发, Salvatore Sanfilippo和Pieter Noordhuis也分别在3月和5月加入VMware,全职开发Redis。

Redis的应用场景

  • 缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)
  • 分布式集群架构中的session分离。
  • 聊天室的在线好友列表。
  • 任务队列。(秒杀、抢购、12306等等)
  • 应用排行榜。
  • 网站访问统计。
  • 数据过期处理(可以精确到毫秒)

Redis安装配置

Redis安装

Aliyun Linux 17.1 64位

  • 第一步:在Linux下安装gcc环境(该步骤可以省略,CentOS中默认自带C环境)

  • yum install gcc-c++

  • 第二步:将下载的Redis源码包上传到Linux服务器中

  • 第三步:解压缩Redis源码包

    • tar -zxf redis-3.0.0.tar.gz
  • 第四步:编译redis源码

    • cd redis-3.0.0/
    • make
  • 第五步:安装redis

    • make install PREFIX=/usr/local/redis0707

Redis启动

前端启动
启动方式:
直接运行bin/redis-server将以前端模式启动
[[email protected] bin]# ./redis-server
启动缺点:
ssh命令窗口关闭则redis-server程序结束,不推荐使用此方法

启动图例

Redis实战
前端启动的关闭:ctrl+c

后端启动

  1. 第一步:将redis源码包中的redis.conf配置文件复制到/usr/local/redis0707/bin/下
  2. [[email protected] redis-3.0.0]# cd /root/redis-3.0.0/
  3. [[email protected] redis-3.0.0]# cp redis.conf /usr/local/redis0707/bin/
  4. 第二步:修改redis.conf,将daemonize由no改为yes
  5. [[email protected] bin2]# vim redis.conf
Redis实战

6.第三步:执行命令
7.[[email protected] bin]# ./redis-server redis.conf

后端启动的关闭方式

  1. 非正常关闭(不推荐使用)
  2. kill 26774
  3. 正常关闭:
  4. [[email protected] bin]# ./redis-cli shutdown

Redis客户端

Redis自带的客户端

Redis实战

指定主机和端口
[[email protected] bin]# ./redis-cli -h 127.0.0.1 -p 6379

  • -h:redis服务器的ip地址
  • -p:redis实例的端口号

如果不指定主机和端口也可以
[[email protected] bin]# ./redis-cli

  • 默认主机地址是127.0.0.1
  • 默认端口是6379

图形界面客户端

Redis实战

连接不上的原因:

  • ECS6379安全组规则入口方向未开
  • 防火墙

注意:
默认一共是16个数据库,每个数据库之间是相互隔离。数据库的数量是在redis.conf中配置的。

Redis实战

切换数据库使用命令:select数据库编号
例如:select 1