是什么?
Remote Dictionary Server(远程字典服务) 是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Value数据库。提供了丰富的数据结构,例如String、Hash、List、Set、SortedSet等等。数据是存在内存中的,同时Redis支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等多种功能特性提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案。
Redis从发布至今,已经有十余年的时光了,一直遵循着自己的命名规则:
版本号第二位如果是奇数,则为非稳定版本 如2.7、2.9、3.1
版本号第二位如果是偶数,则为稳定版本 如2.6、2.8、3.0、3.2
历史发布版本的源码:https://download.redis.io/releases/
能干嘛?
● 分布式缓存,挡在Mysql数据库之前的带刀侍卫(共用和配合使用,非竞争关系)
○
● 内存存储和持久化(RDB+AOF),redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
● 高可用架构搭配
○ 单机
○ 主从
○ 哨兵
○ 集群
● 缓存穿透、击穿、雪崩
● 分布式锁
● 队列
● 排行榜加点赞
● …
优势
● 性能极高–Redis能读的速度是110000秒/次,写的速度是81000次/秒
● Redis数据类型丰富,不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
● Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
● Redis支持数据的备份,即master-slave模式的数据备份
Redis7新特性
大体和之前的redis版本保持一致和稳定,主要是自身底层性能和资源利用率上的优化和提高。
2. Redis安装配置
1、Linux安装Redis安装Redis必须先具备gcc编译环境
(Redis是C语言开发,安装Redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc)
gcc -v #查看版本
yum -y install gcc-c++ #安装c++库环境
附:
安装gcc
gcc的安装很简单,首先要确保root登录,其次就是Linux要能连外网:
yum -y install gcc automake autoconf libtool make
注意:运行yum时出现/var/run/yum.pid已被锁定,
PID为xxxx的另一个程序正在运行的问题解决:
rm -f /var/run/yum.pid
2、通过命令行下载Redis
#查看系统多少位,返回是多少就是几位
getconf LONG_BIT
wget http://download.redis.io/releases/redis-7.0.0.tar.gz
3、/opt 目录下解压redis
mv redis-7.0.0.tar.gz /opt/
cd /opt
tar -zxvf redis-7.0.0.tar.gz && cd redis-7.0.0
4、编译安装,在redis-7.0.0目录下执行
make && make install
查看redis版本的命令
redis-server -v
5、查看默认安装目录/usr/local/bin
cd /usr/local/bin && ls -l
#redis-benchmark:性能测试工具,服务启动后运行该命令,看看自己本子性能如何
#redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
#redis-check-dump:修复有问题的dump.rdb文件
#redis-cli:客户端,操作入口
#redis-sentinel:redis集群使用
#redis-server:Redis服务器启动命令
6、将默认的redis.conf拷贝到自己定义好的一个路径下,比如/myredis
mkdir /myredis
cp /opt/redis-7.0.0/redis.conf /myredis/
7、修改/myredis目录下redis.conf配置文件做初始化设置
vim /myredis/redis.conf
redis.conf配置文件,改完后确保生效,记得重启,记得重启
守护进程,默认daemonize no 改为 daemonize yes
保护模式,默认protected-mode yes 改为 protected-mode no
默认bind 127.0.0.1 改为 直接注释掉(默认bind 127.0.0.1只能本机访问)或改成本机IP地址,否则影响远程IP连接
添加redis密码 改为 requirepass 你自己设置的密码 requirepass 123456
8、在/usr/local/bin目录下运行redis-server,启用/myredis目录下的
redis7conf
cd /usr/local/bin
redis-server /myredis/redis.conf
9、连接服务
redis-cli -a 设置的密码 -p 6379
[root@VM-4-17-centos bin]# redis-cli -a 123456 -p 6379
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set k1 hellowrold
OK
127.0.0.1:6379> get k1
"hellowrold"
10、关闭服务
#单实例关闭
redis-cli -a 123456 shutdown
#多实例关闭,指定端口号关闭
redis-cli -p 6379 shutdown
Warning: Using a password with ‘-a’ or ‘-u’ option on the command line interface may not be safe.
解决办法将标准错误去除即可,追加2>/dev/null,将标准错误丢弃即可,就没有烦人的警告了。
redis-cli -a 123456 2>/dev/null
Redis端口为啥是6379么?
Redis的默认端口是6379,是由手机键盘字母MERZ的位置决定的。MERZ在Antirez的朋友圈语言中是"愚蠢和傻B"的代名词,它源于意大利广告女郎Alessia Merz在电视节目上说了一堆愚蠢的话,redis之父对她有"特殊"印象,就给她弄成端口号了
Redis7卸载步骤
1、停止redis-server服务
pe -ef | grep redis
redis-cli shutdown
2、删除/usr/local/lib目录下与redis相关的文件
ls -l /usr/local/bin/redis-*
rm -rf /usr/local/bin/redis-*