为什么叫 REDIS
它的全称是 REmote DIctionary Service,直接翻译过来是远程字典服务。
关系型数据库的特点
1、它以表格的形式,基于行存储数据,是一个二维的模式。
2、它存储的是结构化的数据,数据存储有固定的模式(schema),数据需要适应表结构。
3、表与表之间存在关联(Relationship)。
4、大部分关系型数据库都支持 SQL(结构化查询语言)的操作,支持复杂的关联查询。
5、通过支持事务(ACID 酸)来提供严格或者实时的数据一致性。但是使用关系型数据库也存在一些限制,比如:
1、要实现扩容的话,只能向上(垂直)扩展,比如磁盘限制了数据的存储,就要扩大磁盘容量,通过堆硬件的方式,不支持动态的扩缩容。水平扩容需要复杂的技术来实现,比如分库分表。
2、表结构修改困难,因此存储的数据格式也受到限制。
3、在高并发和高数据量的情况下,我们的关系型数据库通常会把数据持久化到磁盘,基于磁盘的读写压力比较大。
为了规避关系型数据库的一系列问题,我们就有了非关系型的数据库,我们一般把它叫做“non-relational”或者“Not Only SQL”。
非关系型数据库的特点
1、存储非结构化的数据,比如文本、图片、音频、视频。
2、表与表之间没有关联,可扩展性强。
3、保证数据的最终一致性。遵循 BASE(碱)理论。 Basically Available(基本可用); Soft-state(软状态); Eventually Consistent(最终一致性)。
4、支持海量数据的存储和高并发的高效读写。
5、支持分布式,能够对数据进行分片存储,扩缩容简单。
对于不同的存储类型,我们又有各种各样的非关系型数据库,比如有几种常见的类型(详细介绍):
1、KV 存储,用 Key Value 的形式来存储数据。比较常见的有 Redis 和 MemcacheDB。
2、文档存储,MongoDB。
3、列存储,HBase。
4、图存储,这个图(Graph)是数据结构,不是文件格式。Neo4j。
5、对象存储。
6、XML 存储等等。
- 更丰富的数据类型
- 进程内与跨进程;单机与分布式
- 功能丰富:持久化机制、过期策略
- 支持多种编程语言
- 高可用,集群
Redis基于Linux安装启动
1、下载redis(下载地址)
比如把Redis安装到/usr/local/soft/
cd /usr/local/soft/
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
2、解压压缩包
tar -zxvf redis-5.0.5.tar.gz
3、安装gcc依赖
Redis是C语言编写的,编译需要
yum install gcc
4、编译安装
cd redis-5.0.5
make MALLOC=libc
将/usr/local/soft/redis-5.0.5/src目录下二进制文件安装到/usr/local/bin
cd src
make install
5、修改配置文件
默认的配置文件是/usr/local/soft/redis-5.0.5/redis.conf
后台启动
daemonize no
改成
daemonize yes
下面一行必须改成 bind 0.0.0.0 或注释,否则只能在本机访问
bind 127.0.0.1
如果需要密码访问,取消requirepass的注释
requirepass yourpassword
6、使用指定配置文件启动Redis
/usr/local/soft/redis-5.0.5/src/redis-server /usr/local/soft/redis-5.0.5/redis.conf
7、进入客户端
/usr/local/soft/redis-5.0.5/src/redis-cli
8、停止redis(在客户端中)
redis> shutdown
或
ps -aux | grep redis
kill -9 xxxx
Redis基本操作
默认有 16 个库(0-15),可以在配置文件中修改,默认使用第一个 db0。
databases 16
因为没有完全隔离,不像数据库的 database,不适合把不同的库分配给不同的业务使用。
切换数据库
select 0
清空当前数据库
flushdb
清空所有数据库
flushall
Redis 是字典结构的存储方式,采用 key-value 存储。key 和 value 的最大长度限制是 512M
键的基本操作(参考命令)
存值
set vincent 9527
取值
get vincent
查看所有键
keys *
获取键总数
dbsize
查看键是否存在
exists vincent
删除键
del vincent vision
重命名键
rename vincent vision
查看类型
type vincent
Redis 一共有几种数据类型?(详细数据类型)
String、Hash、Set、List、Zset、Hyperloglog、Geo、Streams