Redis
1.什么是redis
Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis 优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis与其他key-value存储有什么不同?
- Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
- Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的
Redis 数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
2.安装redis
1.正常安装过程:
在正常情况下,分为Windows和linux的安装方案接下来安装的linux版本。
-
首先,在官方的网站上找到对应下载的版本(https://redis.io)
-
其次接下来就要准备gcc(因为基于c++产生的,需要这个):yum install gcc-c++
-
安装tcl-8.5.13-8.el7.x86_64.rpm:wget http://mirror.centos.org/centos/7/os/x86_64/Packages/tcl-8.5.13-8.el7.x86_64.rpm
-
先使用云安装(yum),也可以用下载到本地的文件上传上去。本次讲解为云安装:wget http://download.redis.io/releases/redis-6.0.8.tar.gz,下载完成
-
解压在安装:tar -zxvf redis-6.0.8.tar.gz
-
进入解压的redis,进行make编译。在编译期间,可能会出现问题。后面讲解
-
出现以下,便是成功
接下来设置一些配置文件
2.安装出现的错误(附带解决方案):
1.本列出现的问题:
、
错误原因:
gcc版本问题,新版本的。redis6.0以上
#查看gcc版本
gcc -v
解决办法:
#升级到 5.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
#注意:scl命令启用只是临时的,推出xshell或者重启就会恢复到原来的gcc版本。
#如果要长期生效的话,执行如下:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
2.综合网上同行问题,还有几种:
安装tcl-8.5.13-8.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/tcl-8.5.13-8.el7.x86_64.rpm
rpm -ivh tcl-8.5.13-8.el7.x86_64.rpm
出现如下错误 :
cd src && make all
make[1]: Entering directory '/xx/xx/redis-x.x.x/src'
CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory '/xx/xx/redis-x.x.x/src'
make: *** [all] Error 2
先查看是否安装c++的编译器; 执行 yum -y install gcc-c++