目录
一、NoSQL概述
1.1关于NoSQL
说到redis就不得不提NoSQL这个概念,在此之前,我一直以为NoSQL是没有SQL语句,其实其全称是Not Only SQL,意为不仅仅是SQL,泛指”非关系型数据据“。NoSQL不依赖业务逻辑方式存储,而以简单的key-value方式存储,因此大大提升了数据库拓展能力。与SQL比,不遵循SQL标准,不支持ACID,性能远超SQL.
1.2NoSQL的应用场景与不适用场景
因为NoSQL的高性能,所以非常适用于对数据高并发的读写,对海量数据的读写,对数据高拓展性的场景。
由于NoSQL不支持ACID,所以需要事务支持的情况下不使用。以及基于SQL的结构化存储,处理复杂关系的情况下也不适用。
1.3
二、Redis概述
Redis是一个开源的NoSQL数据库,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。并且在此基础上实现了master-slave(主从)同步。
三.Redis的安装
注:因为redis需要6379端口,所以用服务器的小伙伴记得把端口开放!!!!!!!!
2.安装C语言编译环境
[root@docker ~]# yum install centos-release-scl scl-utils-build
[root@docker ~]# yum install -y devtoolset-8-toolchain
[root@docker ~]# scl enable devtoolset-8 bash
3.检测gcc版本
[root@docker ~]# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
4.下载的redis安装包放到/opt目录(建议尝试一下MobaXterm这个终端工具)
5.解压安装包
[root@docker opt]# tar -zxvf redis-6.2.7.tar.gz
6.解压好后进入redis6.2.7目录执行make命令(执行两次)
[root@docker redis-6.2.7]# make
注:如果没有准备好C语言编译环境,make 会报错—Jemalloc/jemalloc.h:没有那个文件。
解决方案:运行make distclean
7.使用make install安装
[root@docker redis-6.2.7]# make install
cd src && make install
make[1]: Entering directory '/opt/redis-6.2.7/src'
Hint: It's a good idea to run 'make test' ;)
INSTALL redis-server
INSTALL redis-benchmark
INSTALL redis-cli
make[1]: Leaving directory '/opt/redis-6.2.7/src'
8.进入安装目录:/usr/local/bin
edis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
redis-check-dump:修复有问题的dump.rdb文件
redis-sentinel:Redis集群使用
redis-server:Redis服务器启动命令
redis-cli:客户端,操作入口
9.前台启动(不推荐)
[root@docker bin]# redis-server
18248:C 16 Aug 2022 19:57:31.966 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
18248:C 16 Aug 2022 19:57:31.966 # Redis version=6.2.7, bits=64, commit=00000000, modified=0, pid=18248, just started
18248:C 16 Aug 2022 19:57:31.966 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
18248:M 16 Aug 2022 19:57:31.966 * monotonic clock: POSIX clock_gettime
18248:M 16 Aug 2022 19:57:31.967 # A key '__redis__compare_helper' was added to Lua globals which is not on the globals allow list nor listed on the deny list.
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 6.2.7 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 18248
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
(1)先拷贝一份redis配置文件进行备份
[root@docker bin]# cp /opt/redis-6.2.7/redis.conf /myredis
(2)将daemonize设置为yes使其支持后台运行(第259行)
[root@docker bin]# vi /opt/redis-6.2.7/redis.conf
(3)后台启动redis
[root@docker bin]# redis-server /opt/redis-6.2.7/redis.conf
(4)查看后台
[root@docker bin]# ps -ef | grep redis
root 20587 1 0 20:08 ? 00:00:00 redis-server 127.0.0.1:6379
root 20781 12277 0 20:09 pts/1 00:00:00 grep --color=auto redis
(5)用客户端访问
[root@docker bin]# redis-cli
127.0.0.1:6379>
(6)测试
127.0.0.1:6379> ping
PONG
注:此文参考尚硅谷