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