1 Nosql
单机mysql -> 缓存+mysql+垂直拆分(不同内容的表分离) -> 分库分表(同一个内容的表)+水平拆分+MySQL集群;
核心围绕读写转,读是大概率事件,写是小概率事件,读可以加缓存,写要保证数据一致;
NoSQL -> Not Only SQL泛指非关系型数据库;
很多数据(个人信息、社交网络、地理位置)不需要一个固定的格式;
2 四大分类
KV键值对、文档型、列存储数据库、图关系数据库;
3 Redis简介
Remote Dictionary Server 远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
4 安装
4.1 下载解压
【redis官网】 我选择了版本:Redis 6.0.9
4.2 编译安装
- Redis 6.0.9版本编译安装要求gcc版本为5.4.0以上,查看gcc版本
> gcc -v
,如果版本较低,参考CentOS 7 安装gcc-5.4.0版本升级gcc;
或者升级到gcc9.3:
> yum -y install centos-release-scl
> yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
> scl enable devtoolset-9 bash
> echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
(需要root用户权限) - 进入解压后的Redis目录编译:
> make
; - 编译结束安装:
> sudo make install
; - 安装成功,查看
/usr/local/bin
目录下就有:
redis-benchmark、redis-check-aof*、redis-check-rdb*、redis-cli*、redis-sentinel -> redis-server*、redis-server*
相关服务;
4.3 测试使用
- 复制
redis.conf
到自己的配置目录; - 修改配置文件中
daemonize yes
可以后台运行; - 启动服务:
> redis-server redis.conf
(反人类,一句提醒打印都没有,> ps aux|grep redis-server
查看是否开启成功) - 客户端:
> redis-cli
添加一个键值对:127.0.0.1:6379> set test hello
获取一个值:127.0.0.1:6379> get test
远程连接:
- 修改服务端,Redis配置文件:
bind 0.0.0.0
和protected-mode no
- 客户端连接:
redis-cli -h ×××.×××.×××.××× -p 6379
5 基础操作命令
- redis默认有16个数据库,默认使用0号数据库;
- 切换数据库:
select 0
- 查看数据库大小:
DBSIZE
- 清空当前数据库所有值:
flushdb
- 清空所有数据库所有值:
flushall
- 查看所有的key:
keys *
- 查看当前操作的是哪个数据库127.0.0.1:6379[15]:
15号数据库
- redis5是单线程的,redis6是支持多线程的;