一.什么是Redis
(1)全称:Remote Dictionary Server(远程字典服务器)。是完全开源免费的,用C语言编写的, 遵守BSD协议。
是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。
(2)Redis 与其他 key - value 缓存产品有以下三个特点
i)Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
ii)Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
iii)Redis支持数据的备份,即master-slave模式的数据备份
二.Redis能做什么
(1)内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
(2)取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
(3)模拟类似于HttpSession这种需要设定过期时间的功能
(4)发布、订阅消息系统
(5)定时器、计数器
三.Redis在哪里下载
(1)Http://redis.io/
(2)Http://www.redis.cn/
四.我们平时用Redis做什么
(1)数据类型、基本操作和配置
(2)持久化和复制,RDB/AOF
(3)事务的控制
(4)复制
五.Redis安装
一.rpm包安装
进入http://rpmfind.net/
筛选过滤redis和x86_64
1)安装这个
[root@bogon ~]# yum localinstall http://rpmfind.net/linux/remi/enterprise/7/remi/x86_64/redis-6.2.7-1.el7.remi.x86_64.rpm
2)开机字启动redis服务
[root@bogon ~]# systemctl enable --now redis
Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /usr/lib/systemd/system/redis.service.
3)查看一下端口
[root@bogon ~]# netstat -lnupt | grep :6
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1332/redis-server 1
tcp6 0 0 ::1:6379 :::* LISTEN 1332/redis-server 1
4)登录redis
[root@bogon ~]# redis-cli
127.0.0.1:6379>
5)查看是否为普通用户启动
[root@bogon ~]# id redis
uid=997(redis) gid=995(redis) 组=995(redis)
过滤查看redis配置文件
/etc/logrotate.d/redis
/etc/redis/redis.conf
/etc/redis/sentinel.conf
/etc/systemd/system/redis-sentinel.service.d/limit.conf
/etc/systemd/system/redis.service.d/limit.conf
过滤查看redis的组和用户信息
[root@bogon ~]# grep redis /etc/passwd
redis:x:997:995:Redis Database Server:/var/lib/redis:/sbin/nologin
二.源码安装
进入http://download.redis.io/releases/
下载对应版本
这里我下载的和上面rpm包相同版本
[root@bogon ~]# ls
redis-6.2.7.tar.gz
解压到/usr/local/src/
[root@bogon ~]# tar xf redis-6.2.7.tar.gz -C /usr/local/src/
相关配置文件已经在/usr/local/src/下了
[root@bogon ~]# cd /usr/local/src/redis-6.2.7/
[root@bogon redis-6.2.7]# ls
00-RELEASENOTES deps redis.conf sentinel.conf
BUGS INSTALL runtest src
CONDUCT Makefile runtest-cluster tests
CONTRIBUTING MANIFESTO runtest-moduleapi TLS.md
COPYING README.md runtest-sentinel utils
查看文档帮助
[root@bogon redis-6.2.7]# more INSTALL
See README
[root@bogon redis-6.2.7]# more README.md
安装依赖包
[root@bogon redis-6.2.7]# yum install -y gcc gcc-c++ make -y
检查
[root@localhost redis-6.2.7]# make
[root@localhost redis-6.2.7]# make install
创建目录/etc/redis
[root@localhost redis-6.2.7]# mkdir /etc/redis/
将配置文件由之前存储位置拷到新建的目录下
[root@localhost ~]# cp /usr/local/src/redis-6.2.7/redis.conf /etc/redis/
创建组
[root@localhost redis]# groupadd -r redis
[root@localhost redis]# grep redis /etc/group
redis:x:995:
创建用户
[root@localhost redis]# useradd redis -r -u 995 -g 995 -c "Redis Database Server" -d /var/lib/redis -s /sbin/nologin
创建目录
[root@localhost ~]# mkdir /var/lib/redis/
更改目录所属组权限
[root@localhost ~]# chown -R redis:redis /var/lib/redis
更改权限
[root@localhost ~]# vim /etc/redis/redis.conf
创建服务脚本
[root@localhost ~]# vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis persistent key-value database
After=network.target
[Service]
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf --
daemonize no
ExecStop=/usr/bin/kill -9 `pidof redis-server`
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
[root@localhost ~]# systemctl daemon-reload
测试脚本
[root@localhost ~]# systemctl stop redis
[root@localhost ~]# ps -ef | grep redis
root 14888 5517 0 10:36 pts/1 00:00:00 grep --color=auto
redis
[root@localhost ~]# systemctl start redis
[root@localhost ~]# ps -ef | grep redis
redis 14895 1 0 10:37 ? 00:00:00
/usr/local/bin/redis-server 127.0.0.1:6379