Redis 讲解系列之 Redis入门

来源:互联网 发布:linux没有安装图形界面 编辑:程序博客网 时间:2024/06/11 07:50

Redis 讲解系列之 Redis入门

入门概述

  • 是什么

    • Redis:REmote DIctionary Server(远程字典服务器)
      是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。
    • Redis 与其他 key - value 缓存产品有以下三个特点

      • Redis支持数据的持久化,可以将内存中数据保持在磁盘中,重启的时候可以再次加载进行使用

      • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

      • Redis支持数据的备份,即master-slave模式的数据备份
  • 能干嘛

    • 内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务

    • 取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面

    • 模拟类似于HttpSession这种需要设定过期时间的功能

    • 发布、订阅消息系统

    • 定时器、计数器

  • 去哪下

    • http://redis.io/

    • http://www.redis.cn/

  • Redis的核心功能点

    • 数据类型、基本操作和配置
    • 持久化和复制,RDB/AOF
    • 事务的控制
    • 复制
    • ….

Redis的安装

Win7 版安装(一般不建议在Windows下安装,因为一般企业的使用或者Redis功能发挥最优良的OS Env 是Unix,所以建议使用Unix或者Linux OS,当然如果项目调试OS Env是window或者报以接触学习的目的的话windows 完全可以满足也易于操作)。

  • 下载地址之一:http://pan.baidu.com/s/1kUEy2lL
  • 安装

    • 解压安装
      获取Windows版 Redis Zip包,解压到某一目录下,以我的为例我解压在:E:\WorkSpace\IDEs\Redis

    • 调试
      解压完了之后我们先启动Redis之于一些关于Redis的基本配置我们在后面的章节中将会详细解读Redis的配置文件,本章现将Redis安装成功并能做一些基本操作即可。

      • 启动Redis Server

        • cmd 进入 E:\WorkSpace\IDEs\Redis
        • 运行命令:redis-server redis.windows.conf 此命令的意思:用redis.windows.conf 来配置Redis的一些基本参数并启动Redis Server。成功启动是因是如下图所示:
          这里写图片描述
      • 获取Redis Client
        Redis的Server成功启动之后,我们需要重开一个cmd进程来获取Redis Client的连接。

        • cmd 进入 E:\WorkSpace\IDEs\Redis

        • 运行命令:redis-clif
          成功获取Redis Client之后应如下图所示:
          这里写图片描述

      • 一个测试的例子
        在Redis Client端操作如下:
        这里写图片描述


3.Redis启动后杂项基础知识讲解

  • 单进程

    • 单进程模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率
    • epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
  • 默认16个数据库,类似数组下表从零开始,初始默认使用零号库

  • select命令切换数据库

  • dbsize查看当前数据库的key的数量

  • flushdb:清空当前库

  • Flushall;通杀全部库

  • 统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上

  • Redis索引都是从零开始

  • 为什么默认端口是6379