Redis介绍
1、Redis是什么
Redis是一种基于键值对的NoSQL数据库,与很多键值对数据库不同,redis中的值可以有string,hash,list,set,zset,geo等多种数据结构和算法组成。
因为Redis会将所有的数据都放在内存中,所以他的读写性能非常惊人,不仅如此,Redis还可以将内存中的数据利用快照和日志的形式保存到硬盘上。
Redis还提供了键过期,发布订阅,事务,流水线等附加功能
访问https://redis.io/download 到官网进行下载。这里下载最新的5.0版本.
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.高可用和分布式 哨兵 集群
3、 Redis应用场景
1.缓存---键过期时间 缓存session会话 缓存用户信息,找不到再去mysql查,查到然后回写到redis 2.排行榜-列表&有序集合 热度排名排行榜 发布时间排行榜 3.计数器应用-天然支持计数器 帖子浏览数,视频播放次数,商品浏览数 4.社交网络-集合 踩/赞,粉丝,共同好友/喜好,推送,打标签 5.消息队列系统-发布订阅 配合elk实现日志收集
Redis安装部署
1、目录规划
### redis下载目录
/data/soft/
### redis安装目录
/opt/redis_cluster/redis_{PORT}/{conf,logs,pid}
### redis数据目录
/data/redis_cluster/redis_{PORT}/redis_{PORT}.rdb
### redis运维脚本
/root/scripts/redis_shell.sh
2、 安装命令
#编辑hosts文件 [root@node01 ~]# tail -3 /etc/hosts 10.192.27.115 node01 10.192.27.116 node02 10.192.27.117 node03 [root@node01 ~]# mkdir -p /data/soft [root@node01 ~]# mkdir -p /data/redis_cluster/redis_6379 [root@node01 ~]# mkdir -p /opt/redis_cluster/redis_6379/{conf,pid,logs} [root@node01 ~]# cd /data/soft/ [root@node01 soft]# wget http://download.redis.io/releases/redis-5.0.6.tar.gz [root@node01 soft]# tar zxf redis-5.0.6.tar.gz -C /opt/redis_cluster/ [root@node01 soft]# ln -s /opt/redis_cluster/redis-5.0.6 /opt/redis_cluster/redis [root@node01 soft]# cd /opt/redis_cluster/redis [root@node01 redis]# make && make install [root@node01 redis]# cp redis.conf /opt/redis_cluster/redis_6379/conf/redis_6379.conf
A、若出现make未找到,则先进行安装。 Command 'make' not found, but can be installed with: sudo apt install make sudo apt install make-guile B、若出现如下提示,则说明未安装gcc,使用命令安装gcc:yum install gcc。 [root@node01 redis]# make cd src && make allmake[1]: Entering directory `/opt/redis_cluster/redis/src‘ CC adlist.o /bin/sh:cc: command not found make[1]: *** [adlist.o] Error127 make[1]: Leaving directory `/opt/redis_cluster/redis/src‘ make: *** [all] Error2 C、若出现如下提示,则将make改为make MALLOC=libc,推测是因为编译库的问题。 [root@node01 redis]#make cd src && make all make[1]: Entering directory `/opt/redis_cluster/redis/src‘ CC adlist.o In file included from adlist.c:34:0: zmalloc.h:50:31: error: jemalloc/jemalloc.h: No suchfileor directory zmalloc.h:55:2: error:#error"Newer version of jemalloc required" make[1]: *** [adlist.o] Error1 make[1]: Leaving directory `/opt/redis_cluster/redis/src‘ make: *** [all] Error2 D、安装redis,执行make test时遇到You need tcl 8.5 or newer in order to run the Redis test 安装 yum install tcl 2、安装编译后的文件:make install,没有配置,手动复制配置:cp redis.conf /opt/redis_cluster/redis_6379/conf/redis_6379.conf 3、设置Redis密码,编辑刚刚复制的配置文件:vi redis.conf,解除requirepass参数的注释,并设置值,例如:requirepass password 4、使用配置文件启动Redis数据库:redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf
3、 配置文件说明
### 以守护进程模式启动 daemonize yes ### 绑定的主机地址 bind 10.0.0.51 ### 监听端口 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 /data/redis_cluster/redis_6379
4、 启动关闭服务
[root@node01 redis]# redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf [root@node01 redis]# ps -ef | grep redis root 156329 1 0 10:51 ? 00:00:00 redis-server 10.192.27.115:6379 root 156357 18416 0 10:51 pts/0 00:00:00 grep --color=auto redis [root@node01 redis]# redis-cli -h 10.192.27.115 shutdown [root@node01 redis]# ps -ef | grep redis root 161245 18416 0 11:19 pts/0 00:00:00 grep --color=auto redis [root@node01 redis]# redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf [root@node01 redis]# ps -ef | grep redis root 161249 1 0 11:19 ? 00:00:00 redis-server 10.192.27.115:6379 root 161300 18416 0 11:19 pts/0 00:00:00 grep --color=auto redis [root@node01 redis]#