说到 Redis,大家可能第一反应就是它是当前最受欢迎的 NoSQL 数据库之一。那么在正式介绍 Redis 之前,我们先来看看关于 NoSQL 的一些相关信息,比如它是什么,又比如它的一些特点以及它的一些分类。那么我们接下来就从以上三个方面来对 NoSQL 的相关历史做一个简单介绍,然后再去看看 Redis 的相关知识。
NoSQL = Not Only SQL
泛指非关系型数据库,随 Web2.0 的诞生,传统关系型数据库难以应对 Web2.0,尤其是超大规模的高并发社区。NoSQL 在当今大数据程序下较为流行。
NoSQL 主要可以分为如下四大类,然后关于各类的实例、应用场景、数据模型以及各个类型的一些优缺点,可以参见下面的表。
分类 | 实例 | 应用场景 | 数据模型 | 优点 | 缺点 |
---|---|---|---|---|---|
键值对(key-value) | Redis、Voldemort | 内存缓存,用于处理大量数据的高访问负载,也可用于日志系统等 | key 指向 value 的键值对,通常是用 HashTable 来实现 | 查找速度快 | 数据无结构化,通常只被当做字符串或二进制数据 |
列存储数据库 | HBase | 分布式文件系统 | 以列簇式存储,讲同一列数据存储在一起 | 1. 查找速度快2. 扩展性强3. 更容易进行分布式扩展 | 功能相对局限 |
文档型数据库 | MongoDb | Web 应用,类似于 Key-Value | key-value 对应的键值对,value 为结构化的数据 | 1. 数据结构要求宽松2. 表结构可变,无需像关系型数据库一样预先定义表结构 | 查询性能低,且查询语法不统一 |
图形数据库(Graph) | Neo4j、InfoGrid | 社交网络、推荐系统等 | 图结构 | 可以利用图结构相关算法,如最短路径寻址、N度关系查找等 | 许多时候需要对整个图进行计算才能得到最终结果,效率不高;而且做分布式集群较困难 |
以上对 NoSQL 做了一个简介之后,接下来就轮到我们今天的主角 - Redis 了。接下来,我将从相关简介,如何安装以及常用基本操作几个方面来对 Redis 进行介绍。
Redis 是一个高性能的开源的 key-value
数据库,底层由 C 语言实现,相比于其他同类型产品,有如下特点。
key-value
类型的数据,同时还支持 list、set、hash、zset
等数据结构的存储;master-slave
模式的数据备份;MULTI
和 EXEC
指令封装;publish/subscribe
,通知,key
过期等;./redis-server.exe
./redis-cli.exe
# 设置键值对
set key "cunyu"
# 取出键值对
get
# 解压
tar -zxvf redis-6.0.6.tar.gz
# 进入文件夹
cd redis-6.0.6
# 编译
make
当在控制台中获取中文键值时,可能会出现乱码的情况,此时,可以通过在启动客户端时加入 --raw
参数即可解决;
# 可能乱码的启动方式
./redis-cli
# 解决乱码的启动方式
./redis-cli --raw
# redis 默认提供 16 个数据库,默认使用 0 号数据库
select num(数据库编号)
get name
DBSIZE
keys *
# 清空所有数据库
FLUSHALL
# 清空当前数据库
flush db
EXISTS key
move key value
# time 时间单位为秒
EXPIRE key time
type key
OK,以上就是今天的所有内容了。主要介绍了 NoSQL 的相关知识,接着引入 Redis 的特点、优点、应用场景、和其他同类型数据库的区别、然后介绍 Redis 的安装以及安装过程中需要注意的事项,最后则是对 Redis 在日常使用时使用最频繁的一些命令进行了说明。