基本概念
Redis 是:
- 开源的
- 基于键值的存储服务系统
- 支持多种数据结构
- 高性能、功能丰富
Redis 的特性:
- 速度快
- 数据存储于内存
- 使用C语言(且代码质量极高)
- 单线程
- 持久化
- 异步更新数据至磁盘
- 多种数据结构
- 字符串(String)
- 哈希(Hash)
- 链表(Linked List)
- 集合(Set)
- 有序集合(Sorted Set)
- 其它
- 支持多种编程语言
- Java
- php
- python
- ruby
- nodejs
- lua
- 其它
- 功能丰富
- 发布订阅
- 事务
- Lua 脚本
- pipe line
- 简单
- 代码精简(核心代码 2W 行)
- 不依赖与其他外部库
- 单线程
- 主从复制
- 主服务器数据同步至从服务器
- 高可用、分布式
- Redis-Sentinel 支持高可用
- Redis-Cluster 支持分布式
字符串(String) 是 Redis 数据库最简单地数据结构。在这种结构中,一个键对应的值是一个字符串,一个键有且仅对应一个字符串。
列表(List) 是由若干插入顺序排序的字符串元素组成的集合。可以理解为,在这种结构中,一个键对应多个字符串类型的值。因此,整体上看起来,就是一个键对应一个列表。
集合(Set)和 列表 很像,和数据结构中的概念一样,集合 与 列表 不同之处在于,它没有顺序的概念,也不允许其中有重复的内容。
散列表(Hash)可以存储多个键值对的映射,是无序的一种数据集合。特别适合存储一个对象。
Redis 典型使用场景:
- 缓存系统
- 计数器
- 消息队列系统
- 排行榜
- 社交网络
- 实时系统
Redis 安装
Redis 可执行文件说明
redis-server: Redis 服务器
redis-cli:Redis 命令行客户端
redis-benchmark: Redis 性能测试工具
redis-check-aof: AOF 文件修复工具
redis-check-dump: RDB 文件修复工具
redis-sentinel: Sentinel 服务器(2.8版本以后)
三种启动方式
- redis-server
- 动态参数启动
- 配置文件启动(生产环境,单机多实例)
验证:redis-cli -h -p ,再 ping ,会回复 pong
简单的客户端连接
Redis 客户端返回值
- 状态回复
- 错误回复
- 整数回复
- 字符串回复
- 多行字符串回复
Redis 常用配置
daemonize: 是否是守护进程(no | yes),默认值是 no,建议 yes
port: 占用端口,默认 6379
logfile: Redis 系统日志
dir: Redis 工作目录
管理是在 Redis 目录下 创建 config 目录,其中用于存放 redis 启动配置文件。
可以从 Redis 目录下复制其默认配置文件 redis.conf
,并重命名。例如:redis-6381.conf
,其中 9527 表示该配置所要占用的端口号。
daemonize yes
port 6381
dir "/opt/soft/redis/data"
logfile "6381.log"