Redis教程

Redis简介

本文主要是介绍Redis简介,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. Redis简介

  1. Redis是一个开源的key-value存储系统。
  2. 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
  3. 在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。
  4. 区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

2. Redis应用场景

  1. 配合关系型数据库做高速缓存
    • 高频次,热门访问的数据,降低数据库IO
  2. 由于其拥有持久化能力,利用其多样的数据结构存储特定的数据
    • 最新N个数据 --> 通过List实现按自然事件排序的数据
    • 最新N个数据 --> 通过List实现按自然事件排序的数据
    • 时效性的数据 --> 比如手机验证码 Expire过期
    • 计数器,秒杀 --> 原子性,自增方法INCR、DECR
    • 去除大量数据中的重复数据 --> 利用set集合
    • 构建队列 --> 利用list集合
    • 发布订阅消息系统 --> pub/sub模式

3. 官网

  1. Redis官方网站 http://Redis.io
  2. Redis中文官方网站 http://www.Redis.net.cn

3. 安装步骤

  1. 下载获得redis-3.2.5.tar.gz后将它放入我们的Linux目录/opt
  2. 解压命令:tar -zxvf redis-3.2.5.tar.gz
  3. 解压完成后进入目录:cd redis-3.2.5
  4. 在redis-3.2.5目录下执行make命令
    运行Make命令时出现错误,提示 gcc:命令未找到 ,原因是因为当前Linux环境中并没有安装gcc 与 g++ 的环境
  5. 安装gcc与g++
    • 能上网的情况:
      yum install gcc
      yum install gcc-c++
    • 不能上网[建议]
      参考Linux课程中<<03_在VM上安装CentOS7>>中的第40步骤
  6. 重新进入到Redis的目录中执行 make distclean后再执行make 命令.
  7. 执行完make后,可跳过Redis test步骤,直接执行 make install

4. Redis操作

4.1 启动

  1. 默认前台方式启动
    • 直接执行redis-server 即可.启动后不能操作当前命令窗口
  2. 推荐后台方式启动
    • 拷贝一份redis.conf配置文件到其他目录,例如根目录下的myredis目录 /myredis
    • 修改redis.conf文件中的一项配置 daemonize 将no 改为yes,代表后台启动
    • 执行配置文件进行启动 执行 redis-server /myredis/redis.conf

4.2 客户端访问

  1. 使用redis-cli 命令访问启动好的Redis
    • 如果有多个Redis同时启动,则需指定端口号访问 redis-cli -p 端口号
  2. 测试验证,通过 ping 命令 查看是否 返回 PONG

4.3 关闭Redis服务

  1. 单实例关闭
    • 如果还未通过客户端访问,可直接 redis-cli shutdown
    • 如果已经进入客户端,直接 shutdown即可.
  2. 多实例关闭
    • 指定端口关闭 redis-cli -p 端口号 shutdown

4.4 Redis端口号由来

端口号来自一位影星的名字 . Alessia Merz Merz 对应手机打字 6379

4.5 Redis 默认16个库

  1. Redis默认创建16个库,每个库对应一个下标,从0开始.
    • 通过客户端连接后默认进入到0 号库,推荐只使用0号库.
  2. 使用命令 select 库的下标 来切换数据库,例如 select 8

4.Redis的单线程+多路IO复用技术

  1. 多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。
  2. Memcached 是 多线程 + 锁.
    Redis 是 单线程 + 多路IO复用.
这篇关于Redis简介的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!