1、简述redis应用场景。
基于redis访问速度块、支持的数据类型丰富的特点,所以redis最常用来存储热点数据。
2、redis的优点是什么?
(1)响应快速
Redis 响应非常快,如果存入一些常用的数据,就能有效提高系统的性能。
(2)支持相对更多的存储的 value 类型
它支持包括 string(字符串)、list(链表)、set(集合)、hash(哈希结构)和 zset(有序集合)。这些数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作。一方面可以满足存储各种数据结构体的需要;另外一方面数据类型少,使得规则就少,需要的判断和逻辑就少,这样读/写的速度就更快。
(3)操作都是原子的
(4) Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了 master-slave(主从)同步。
3、使用yum在线安装redis
[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]# yum install redis -y
复制redis脚本(改一下可以做为源码安装的脚本):
[root@localhost ~]# cd /usr/lib/systemd/system
[root@localhost system]# ls redis*
redis-sentinel.service redis.service
[root@localhost system]# cp redis.service /root
启动:
[root@localhost ~]# systemctl enable --now redis --下次开机启动和这次启动
查看当前状态:
查看端口及进程:
[root@localhost ~]# netstat -lnupt | grep redis
打开redis:
[root@localhost ~]# redis-cli
4、源码安装redis并配置服务脚本
前提:删除在线安装的redis文件
[root@localhost ~]# systemctl stop redis
[root@localhost ~]# systemctl disable redis
查看是否有redis用户:
[root@localhost ~]# id redis
uid=998(redis) gid=996(redis) groups=996(redis)
获取redis用户信息:
[root@localhost ~]# grep redis /etc/passwd
移除redis:
[root@localhost ~]# yum remove redis
1、安装编译环境
[root@localhost ~]# yum install gcc gcc-c++ make -y
2、下载软件(http://download.redis.io/releases/)
[root@localhost ~]# ll redis-5.0.9.tar.gz
-rw-r--r-- 1 root root 1986574 6月 27 23:51 redis-5.0.9.tar.gz
3、安装
解压:[root@localhost ~]# tar xf redis-5.0.9.tar.gz -C /usr/local/src/
编译:
[root@localhost ~]# cd /usr/local/src/redis-5.0.9/
[root@localhost redis-5.0.9]# make MALLOC=libc **(make指令会指定所有的内存处理方式,libc是自带的,无依赖包,只有一种,make失败时可以使用libc)**
安装:
[root@localhost redis-5.0.9]# make install PREFIX=/usr/local/redis (同上)
4、启动(当前无脚本与配置文件)
(1)提供配置文件
[root@localhost redis-5.0.9]# cd /usr/local/redis
当前用redis.server指令启动
查找配置文件:
[root@localhost redis]# find / -name redis.conf
/usr/local/src/redis-5.0.9/redis.conf
创建配置文件要放进的路径(/usr/local也行):
[root@localhost redis]# mkdir /etc/redis
[root@localhost redis]# cp /usr/local/src/redis-5.0.9/redis.conf /etc/redis/
(2)修改配置文件
创建数据目录:
[root@localhost redis]# mkdir /var/lib/redis
[root@localhost redis]# vim /etc/redis/redis.conf
dir ./指定rdb/AOF文件的目录位置,只能为文件夹不能为文件
指定相关数据存放在dir /var/lib/redis里
(3)创建用户和组
[root@localhost redis]# groupadd -r -g 957 redis
[root@localhost redis]# useradd -r -u 957 -g 957 -d /var/lib/redis -c 'Redis server' -s /sbin/nologin redis
权限:[root@node1 redis]# chown -R redis /var/lib/redis/
(4)启动测试
以绝对路径启动:
[root@localhost redis]# /usr/local/redis/bin/redis-server /etc/redis/redis.conf
已经启动,等待连接,复制一个会话继续启动
[root@localhost ~]# /usr/local/redis/bin/redis-cli
配置环境变量:
[root@localhost redis]# vim /etc/profile.d/redis.sh
export PATH=/usr/local/redis/bin:$PATH –重启之后生效
[root@localhost redis]# source /etc/profile.d/redis.sh --加载到当前,立即启动
命令行启动:
[root@localhost redis]# redis-server /etc/redis/redis.conf
已经启动,等待连接,复制一个会话继续启动:
(5)配置服务启动脚本
3种方式查看redis-server进程号:
[root@localhost ~]# ps -ef | grep redis
[root@localhost ~]# pidof redis-server
[root@localhost ~]# pgrep redis-server
关闭redis-server进程:
[root@localhost ~]# kill `pidof redis-server`(反引号)
查看kill绝对路径(红帽7的service服务中所有指令必须使用绝对路径):
[root@localhost ~]# which kill
/usr/bin/kill
[root@localhost redis]# vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis persistent key-value database
After=network.target
[Service]
ExecStart=/usr/local/redis/bin/redis-server /etc/redis/redis.conf --supervised systemd
ExecStop=/usr/bin/kill `pidof redis-server`
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
启动:
测试:
[root@localhost redis]# systemctl stop redis.service
[root@localhost redis]# netstat -lnupt | grep 6379
5、常用的NoSQL数据库有那些,列举不少于3个。
(1)键值数据库
相关产品:Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached
应用:内容缓存
优点:扩展性好、灵活性好、大量写操作时性能高
缺点:无法存储结构化信息、条件查询效率较低
使用者:百度云(Redis)、GitHub(Riak)、BestBuy(Riak)、Twitter(Ridis和
Memcached)
(2)列族数据库
相关产品:BigTable、HBase、Cassandra、HadoopDB、GreenPlum、PNUTS
应用:分布式数据存储与管理
优点:查找速度快、可扩展性强、容易进行分布式扩展、复杂性低
使用者:Ebay(Cassandra)、Instagram(Cassandra)、NASA(Cassandra)、
Facebook(HBase)
(3)文档数据库
相关产品:MongoDB、CouchDB、ThruDB、CloudKit、Perservere、Jackrabbit
应用:存储、索引并管理面向文档的数据或者类似的半结构化数据
优点:性能好、灵活性高、复杂性低、数据结构灵活
缺点:缺乏统一的查询语言
使用者:百度云数据库(MongoDB)、SAP(MongoDB)
(4)图形数据库
相关产品:Neo4J、OrientDB、InfoGrid、GraphDB
应用:大量复杂、互连接、低结构化的图结构场合,如社交网络、推荐系统等