## Redis简介
Redis全名`REmote DIctionary Server(远程字典服务器)`,是完全`开源免费`的,用C语言编写的,遵守BSD协议,是一个`高性能的(key/value)分布式内存数据库`,`基于内存运行`并`支持持久化`的`NoSQL数据库`,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。
## Redis特点
1. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
2. Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
3. Redis支持数据的备份,即master-slave模式的数据备份。
## Redis应用场景
1. 内存存储(缓存)和持久化:Redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务。
2. 取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面。
3. 模拟类似于HttpSession这种需要设定过期时间的功能,如:用户账号的激活。
4. 发布、订阅消息系统。
5. 定时器、计数器。
## Redis安装
Redis我们一般安装Linux版本。可以有多种安装方式。我就不再详述,可以参照下面的文章进行安装。
1. 使用普通方式安装
[Redis安装](https://www.runoob.com/redis/redis-install.html)
2. 使用Docker方式安装
如果不了解Docker可以使用第一种方式安装,不过Docker安装更方便,快捷,不会出现各种如gcc、tcl等问题。
[Docker 安装 Redis](https://www.runoob.com/docker/docker-install-redis.html)
教程中的版本比较老,可以上[Redis官网](https://redis.io/)或[Redis中文网](http://www.redis.cn/)查看最新的版本信息。跟着上述教程都可以成功安装并运行Redis。
## Redis数据类型
### String(字符串)
string是Redis最基本的类型,`一个key对应一个value`。string类型是`二进制安全`的。意思是Redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。一个Redis中字符串value最多可以是512M。
### List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。它的底层实际是个链表。
### Set(集合)
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,也就是说不允许有重复的值。
### Hash(哈希)
Redis hash 是一个键值对集合。Redis hash是一个string类型的field和value的映射表,value可以是Redis中的任意类型。hash特别适合用于存储对象。类似Java里面的Map<String,Object>。
### Zset(有序集合)
zset也叫sorted set即有序集合。Redis zset 和 set 一样也是string类型元素的集合。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
## Redis常用命令
[Redis Doc](http://redisdoc.com/)中涵盖了所有Redis相关命令,但是我们不可能全部都去试一遍,我么可以先记住常用的命令。可以参考以下文章:
1. [Redis常用命令总结](https://blog.csdn.net/feixiang2039/article/details/81388003)
2. [Redis常用命令大全](https://www.cnblogs.com/cxxjohnson/p/9072383.html)
3. [Redis简易教程之“Redis常用命令”](https://www.jianshu.com/p/e0bd94ed4e57)
## 总结
其实本文只是涉及了Redis的简介、应用场景、数据类型、常用命令,适合刚入门的人群,其实还有很多重要的内容,如Redis的配置、持久化、事务、发布订阅、主从复制、使用Jedis等Redis客户端操作Redis等没有涉及,后续会跟进。

Redis入门笔记