第1章 Redis介绍
image.png
1.1 Redis是什么
Redis是一种基于键值对的NoSQL数据库,与很多键值对数据库不同,redis中的值可以有string,hash,list,set,zset,geo等多种数据结构和算法组成.
因为Redis会将所有的数据都放在内存中,所以他的读写性能非常惊人.
不仅如此,Redis还可以将内存中的数据利用快照和日志的形式保存到硬盘上
Redis还提供了键过期,发布订阅,事务,流水线等附加功能.
1.2 Redis重要特性
### 1.速度快
`Redis所有的数据都存放在内存中
`Redis使用C语言实现
`Redis使用单线程架构
### 2.基于键值对的数据结构服务器
`5中数据结构:字符串,哈希,列表,集合,有序集合
### 3.丰富的功能
`提供了键过期功能,可以实现缓存
`提供了发布订阅功能,可以实现消息系统
`提供了pipeline功能,客户端可以将一批命令一次性传到Redis,减少了网络开销
### 4.简单稳定
`源码很少,3.0版本以后5万行左右.
`使用单线程模型法,是的Redis服务端处理模型变得简单.
`不依赖操作系统的中的类库
### 5.客户端语言多
`java,PHP,python,C,C++,Nodejs等
### 6.持久化
`RDB和AOF
### 7.主从复制
### 8.高可用和分布式
`哨兵
`集群
1.3 Redis应用场景
### 1.缓存-键过期时间
`缓存session会话
`缓存用户信息,找不到再去mysql查,查到然后回写到redis
### 2.排行榜-列表&有序集合
`热度排名排行榜
`发布时间排行榜
### 3.计数器应用-天然支持计数器
`帖子浏览数
`视频播放次数
`商品浏览数
### 4.社交网络-集合
`踩/赞,粉丝,共同好友/喜好,推送,打标签
### 5.消息队列系统-发布订阅
`配合elk实现日志收集
第2章 Redis安装部署
1.目录规划
/data/soft/ #redis下载目录
/opt/redis_{PORT}/{conf,logs,pid} #redis安装目录
/data/redis_{PORT}/redis_{PORT}.rdb #redis数据目录
/root/scripts/redis_shell.sh #redis运维脚本
2.安装命令
### 编辑hosts文件
[root@db01 ~]# tail -3 /etc/hosts
10.0.0.51 db01
10.0.0.52 db02
10.0.0.53 db03
#安装
yum install gcc -y
#创建目录
mkdir -p /data/soft
mkdir -p /data/redis_6379
mkdir -p /opt/redis_6379/{conf,pid,logs}
cd /data/soft/
#下载 解压
wget http://download.redis.io/releases/redis-3.2.9.tar.gz
tar zxf redis-3.2.9.tar.gz -C /opt/
ln -s /opt/redis-3.2.9/ /opt/redis
#编译
cd /opt/redis
make && make install
3.配置文件
cat >/opt/redis_6379/conf/redis_6379.conf <<EOF
daemonize yes ### 以守护进程模式启动
bind 127.0.0.1 10.0.0.51 ### 绑定的主机地址
port 6379 ### 监听端口
### pid文件和log文件的保存地址
pidfile /opt/redis_6379/pid/redis_6379.pid
logfile /opt/redis_6379/logs/redis_6379.log
databases 16 ### 设置数据库的数量,默认数据库为0
dbfilename redis_6379.rdb ### 指定本地持久化文件的文件名,默认是dump.rdb
dir /data/redis_6379 ### 本地数据库的目录
EOF
4.启动
#启动
[root@db01 ~]# redis-server /opt/redis_6379/conf/redis_6379.conf
`关闭
`[root@db01 ~]# redis-cli -h db01 shutdown
5.检查是否启动
#检查进程
[root@db01 /opt/redis]# ps -ef|grep redis
root 12473 1 0 10:31 ? 00:00:00 redis-server 127.0.0.1:6379
root 12477 9338 0 10:31 pts/0 00:00:00 grep --color=auto redis
#检查端口
[root@db01 /opt/redis]# netstat -lntup|grep redis
tcp 0 0 10.0.0.51:6379 0.0.0.0:* LISTEN 12473/redis-server
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 12473/redis-server
#进入redis
[root@db01 /opt/redis]# redis-cli
127.0.0.1:6379>
50.jpg