Redis 入门

906 阅读3分钟

Redis简介

  redis是一个基于键值对(key-value)的NoSql数据库。与传统数据库不同的是redis的数据是存在于内存中的,所以读写速度非常快,因此redis被广泛应用于缓存中。与很多键值对数据库不同的是,redis还内置了多种数据结构和算法:string、hash、list、set、zset、Bitmaps、HyperLogLog、GEO。

  另外,redis也经常用来做分布式锁。redis提供了多种数据类型来支持不同的业务场景。除此之外,redis支持事务、持久化、LUA脚本、LUA驱动事件、多种集群方案。

redis特性

  1. 速度快

    • redis的所有数据都是存在于内存中的,这是redis速度快的主要原因
    • redis是由C语言写成,距离操作系统更近,执行速度会更快
    • redis使用单线程结构,预防了多线程可能产生的竞争问题
    • 作者对redis源码的精细打磨
  2. 基于键值对的数据结构服务器

    redis的全称为remote dictionary server,redis数据最基础的组织结构是键值对,在这之上又主要提供了5种数据结构:字符串、字典、列表、集合、有序集合。同时在字符串的基础之上演变出了位图(Bitmaps) 和HyperLogLog两种神奇的“数据结构”, 并且随着LBS(Location Based Service, 基于位置服务) 的不断发展, Redis3.2版本中加入有关GEO(地理信息定位) 的功能。

  3. 丰富的功能

    除了5种数据结构,redis还提供着其他丰富的功能

    • 提供健过期功能,可以用来实现缓存
    • 提供发布和订阅功能,可以用来实现消息系统
    • 支持Lua脚本功能,可以利用Lua创造出新的redis命令
    • 提供了流水线(Pipeline) 功能, 这样客户端能将一批命令一次性传到Redis, 减少了网络的开销
  4. 简单稳定

    redis的简单体现在3个方面:源码少,使用单线程,不依赖操作系统类库

  5. 客户端语言多

    Redis提供了简单的TCP通信协议, 很多编程语言可以很方便地接入到Redis, 并且由于Redis受到社区和各大公司的广泛认可, 所以支持Redis的客户端语言也非常多, 几乎涵盖了主流的编程语言。

  6. 持久化

    通常看, 将数据放在内存中是不安全的, 一旦发生断电或者机器故障,重要的数据可能就会丢失, 因此Redis提供了两种持久化方式: RDB和AOF, 即可以用两种策略将内存的数据保存到硬盘中。

  7. 主从复制

    Redis提供了复制功能, 实现了多个相同数据的Redis副本, 复制功能是分布式Redis的基础。

  8. 高可用和可分布式

    Redis从2.8版本正式提供了高可用实现Redis Sentinel, 它能够保证Redis节点的故障发现和故障自动转移。 Redis从3.0版本正式提供了分布式实现Redis Cluster, 它是Redis真正的分布式实现, 提供了高可用、 读写和容量的扩展性。

Linux上安装Redis(源码方式安装)

  安装之前,需要清楚自己想要安装哪个版本的redis,可以上Redis官网网查看,以3.0.7版本为例。

$ wget http://download.redis.io/releases/redis-3.0.7.tar.gz
$ tar xzf redis-3.0.7.tar.gz
$ ln -s redis-3.0.7 redis
$ cd redis
$ make
$ make install
  1. 下载Redis指定版本的源码压缩包到当前目录。
  2. 解压缩Redis源码压缩包。
  3. 建立一个redis目录的软连接, 指向redis-3.0.7。
  4. 进入redis目录。
  5. 编译(编译之前确保操作系统已经安装gcc) 。
  6. 安装。