Redis系列教程第一章:NoSQL概述与Redis入门一、NoSQL概述
1.1 NoSQL 的基本概念NoSQL(Not Only SQL)泛指非关系型数据库,通常作为关系型数据库的一个补充实现。在面对大规模与高并发的互联网应用时,NoSQL的处理能力更加强大。
1.2 NoSQL数据库的特点- 易于扩展:NoSQL数据库去掉了关系型数据库中的关系特性,让数据之间无关系,非常易于扩展。
- 高性能:NoSQL数据库通常具有非常高的读写性能,尤其在大数据量下,由于数据之间没有任何关系,数据库的结构变得简单。
- 灵活的数据模型:NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。
- 高可用:NoSQL实现高可用架构十分便利,并且通常对性能的影响不大。
1.3 常见的NoSQL数据库- Memcache:一种比较老牌的Key-value格式的NoSQL数据库,数据都存储在内存中,一般不支持持久化操作,支持的数据类型只有字符串。
- Redis:涵盖了Memcache绝大多数功能,支持数据的持久化操作,支持的数据类型也更加丰富。
- MongoDB:高性能的文档数据库,支持持久化,对json格式有良好的查询支持,可以根据实际业务替换RDBMS,独立做数据库服务使用。
二、Redis概述
2.1 什么是RedisRedis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如:
- 字符串(strings)
- 散列(hashes)
- 列表(lists)
- 集合(sets)
- 有序集合(sorted sets)与范围查询
- bitmaps
- hyperloglogs
- 地理空间(geospatial)索引半径查询
Redis 内置了复制(replication),LUA脚本(Lua scripting),LRU驱动事件(LRU eviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过 Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(high availability)。
2.2 Redis的下载与安装下载链接:
Redis-6.2.6.tar.gz
版本:Redis-6.2.6.tar.gz
安装步骤:- 检查系统中是否已经安装gcc编译器
gcc --version如果系统环境中没有安装gcc,手动安装即可:
yum install -y gcc- 解压Redis文件
tar -zxvf redis-6.2.6.tar.gz- 进入解压后的文件redis-6.2.6,并编译该目录
cd redis-6.2.6make如果执行编译的过程中报错缺少文件,请先确保gcc正确安装,然后执行:
make diskclean执行完成后再重新执行make操作。
- 编译完成之后,执行安装操作
make install默认的安装路径为 /usr/local/bin,安装完成之后,进入该目录:
安装成功之后的目录及文件:
- redis-benchmark:Redis的压力测试工具
- redis-check-rdb:修复RDB持久化文件
- redis-sentinel:Redis集群环境中使用,哨兵模式
- redis-check-aof:修复AOF持久化文件
- redis-cli:Redis的命令行工具
- redis-server:Redis服务启动程序
- 启动Redis服务
前台启动
使用redis-server命令进行前台启动(不推荐),一旦在前台启动后,Redis服务会占据命令行终端,不方便做其他操作。
后台启动
- 备份一份redis.conf
cp一份redis.conf文件到其他目录下:
cp /usr/local/redis-6.2.6/redis.conf /etc/redis.conf- 修改redis的默认启动方式
修改/etc/redis.conf中的daemonize no为yes:
- 启动redis
回到/usr/local/bin目录下:
redis-server /etc/redis.conf执行完命令之后,在当前终端下并没有发现redis启动的输出信息,可以通过:
ps -ef | grep redis此时,Redis就已经通过后台启动的方式正常启动了。
- 通过redis-cli命令行工具连接到redis服务器
redis-cli- 停止redis服务
- 在命令行终端中输入 shutdown
- 使用 kill -9 pid
2.3 Redis的基础信息- 默认端口:6379
- 内置16个默认数据库,编号从0开始,初始默认使用0号库
- select <dbid>命令可以执行切换数据库操作,例如:select 1
- dbsize 可以查看当前数据库key的数量
- flushdb 清空当前库
- flushall 清空全部库
- 单线程+多路复用