redis介绍
1.redis是什么
redis是一种基于键值对的NoSQL数据库,与很多键值对数据库不用,reidis中的值可以有string,hash,list,set,zset,geo等多种数据结构和算法组成。
因此redis会将所有的数据都放在内存中,所以他的读写性能非常惊人。
不仅如此,redis还可以将内存中的数据利用快照和日志的形式保存到硬盘上redis还提供了键过期,发布订阅,事务,流水线等附加功能。
redis特点
-
速度快
- reids所以的数据都存在内存中
- redis使用C语言实现
- redis使用单线程架构
-
基于键值对的数据结构服务器
- 5种数据结构:字符串,哈希,列表,集合,有序集合
-
丰富的功能
- 提供了键过期功能,可以实现缓存
- 提供了发布订阅功能,可以实现消息系统
- 提供了pipeline功能,客户端可以将一批命令一次性传到redis,减少了网络开销
-
简单稳定
- 源码很少,3.0版本以后5万行左右
- 使用单线程模型法,是redis服务端处理模型变得简单
- 不依赖操作系统的中的类库
-
客户端语言多
- java、php、python、c、c++、nodejs等
-
持久化
- RDB和AOF
-
主从复制
-
高可用和分布式
- 哨兵
- 集群
2.redis应用场景
-
缓存sessinon会话
-
缓存用户信息,自身进行缓存不用找后端的mysql
-
排行榜列表&有序集合
- 热度排名排行榜
- 发布时间排行榜
-
计数器应用-天然支持计数器
-
帖子浏览数
-
视频播放次数
-
商品浏览数
-
-
消息队列系统-发布订阅
- 配合elk实现日志手机
3.安装redis
3.1服务器规划
db1 | 192.168.40.1 | centos 7 |
---|---|---|
db2 | 192.168.40.4 | centos 7 |
db3 | 192.168.40.12 | centos 7 |
#在hosts文件中加上其他主机
vim /etc/hosts
192.168.40.1 db1
192.168.40.4 db2
192.168.40.12 db3
路径规划
mkdir -p /data/soft
mkdir -p /data/redis_cluster/redis_6379
mkdir -p /opt/redis_cluster/redis_6379/{conf,pid,log}
cd /data/soft
wget https://download.redis.io/releases/redis-3.2.9.tar.gz
3.2安装redis
[root@db1 soft]# tar zxf redis-3.2.9.tar.gz -C /opt/redis_cluster/
创建一个redis的软连接
[root@db1 redis_cluster]# ln -s /opt/redis_cluster/redis-3.2.9/ /opt/redis_cluster/redis
对服务进行编译安装
root@db1 redis]# make
[root@db1 /]# cd /opt/redis_cluster/redis/src
[root@db1 src]# make install
#编译安装完成后所有得文件都在/usr/local/bin目录下
[root@db1 bin]# ll
总用量 15060
-rwxr-xr-x. 1 root root 2432968 3月 25 14:55 redis-benchmark
-rwxr-xr-x. 1 root root 25040 3月 25 14:55 redis-check-aof
-rwxr-xr-x. 1 root root 5181872 3月 25 14:55 redis-check-rdb
-rwxr-xr-x. 1 root root 2585952 3月 25 14:55 redis-cli
lrwxrwxrwx. 1 root root 12 3月 25 14:55 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 5181872 3月 25 14:55 redis-server
官方提供的redis配置文件
#官方提供的配置文件脚本是通过下载的tar包解压出来的目录中也是交互式的可以自己制定安装目录等信息,但是配置参数多,我这边采用自己手写的方式。
[root@db1]cd opt/redis_cluster/redis/utils/install_server.sh
编写redis配置文件
[root@db1]cd /opt/redis_cluster/redis_6379/conf
[root@db1 conf]# cat redis_6379.conf
### 以守护进程模式启动
daemonize yes
### 绑定的主机地址
bind 127.0.0.1 192.168.4.1
### 监听的端口
port 6379
### pid文件和log文件的保存地址
pidfile /opt/redis_cluster/redis_6379/pid/redis_6379.pid
logfile /opt/redis_cluster/redis_6379/logs/redis_6379.log
### 设置数据库的数量,默认数据库为0
databases 16
### 指定本地持久化文件的文件名,默认是dump.rdb
dbfilename redis_6379.rdb
### 本地数据库的目录
dir /opt/redis_cluster/redis_6379
3.3.redis启动和关闭的命令
#启动redis
[root@db1 redis_6379]# redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf
#查看进程的情况
[root@db1 redis_6379]# ps -ef| grep redis
root 67292 1 0 15:38 ? 00:00:00 redis-server 127.0.0.1:6379
root 67296 3894 0 15:39 pts/1 00:00:00 grep --color=auto redis
#直接连接本地的不过配置文需要添加相关信息
[root@db1 redis_6379]# redis-cli
192.168.40.1:6379>
#连接redis,可以指定ip连接
[root@db1 redis_6379]# redis-cli -h 192.168.40.1
192.168.40.1:6379>
#关闭redis的命令
[root@db1 redis_6379]#redis-cli -h 192.168.40.1 shutdown
#本地关闭
[root@db1 redis_6379]#redis-cli shutdown