笔记大纲
-
Redis基础
- 快速认知Redis
- Redis应用场景
- Redis下载
- Redis启动后的知识要点
-
Redis的安装与配置
- Redis版本
- Redis安装步骤【十分详细】
-
Redis客户端工具连接
1.Redis基础
1.1.快速认知Redis
Redis(REmote DIctionary Server
):远程字典服务器,是完全开源免费的,用C语言编写的,遵守BSD
协议,是一个高性能(key/value
)分布式内存数据库,基于内存运行并支持持久化的NoSQL
数据库,是当前最热门的NoSql
数据库之一,也称为数据结构服务器。
Redis与其他key-value缓存产品有以下3个特点:
①Redis支持数据的持久化,可将内存中的数据保存在磁盘中,重启时可再次加载到内存中。
②Redis不仅仅支持简单的key-value类型数据,同时还提高list、set、zset、hash等数据结构的存储。
③Redis支持数据的备份,即master-slave模式的数据备份。
1.2.Redis应用场景
(1)配合关系型数据库做高速缓存
高频次,热门访问的数据,降低数据库IO
高频次,热门访问的数据,降低数据库IO
(2) 由于其拥有持久化能力,利用其多样的数据结构存储特定的数据
最新N个数据一 一通过List
实现按自然事件排序的数据
排行榜,TopN è 利用zset
(有序集合)
时效性的数据,比如手机验证码一 一Expire
过期
计数器,秒杀一 一 原子性,自增方法INCR
、DECR
去除大量数据中的重复数据一 一 利用set
集合
构建队列一 一利用list
集合
发布订阅消息系统 一 一pub/sub
模式
1.3.Redis下载
Redis官方网址:http://redis.io/
Redis中文官方网址:http://www.redis.cn/
1.3.Redis启动后的知识要点
(1)Redis是单进程
单进程模型来处理客户端的请求,对读写等时间的响应是通过对epoll
函数来做到的。Redis的实际处理速度完全依赖主进程的执行效率。
epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO
接口select/poll
的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
(2)Redis默认是16个数据库,类似数组下标从0开始,初始默认使用0号库,用select <dbid>
命令在连接上指定数据库id
(切换数据库)例如 select 1
<表示使用2号库>。
(3)Redis清空当前库/通杀全部库:flushdb/Flushall
。
(4)Redis的默认端口号是6379
,端口号来自一位影星的名字 . Alessia Merz
。
(5)Redis与Memcached比对:Memcached
是 多线程 + 锁,Redis
是 单线程 + 多路IO
复用。
多路复用是指使用一个线程来检查多个文件描述符(
Socket
)的就绪状态,比如调用select
和poll
函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。
2.Redis的安装与配置
2.1.Redis的版本
在Linux环境安装的Redis,不用考虑在Windows环境下对Redis的支持,Redis官方没有提供对Windows环境的支持,是微软的开源小组开发了对Redis对Windows的支持!
2.2.Redis安装步骤
环境准备:
windows7本机系统;
VMware成功安装;
CentOS7.0成功安装;
以下命令,可直接复制粘贴运行在xshell工具脚本中!
(1)下载获得redis-3.2.5.tar.gz
,将它放入Linux目录/usr/local/software
(software
是我自己新建的目录);
(2) 解压命令:tar -zxvf redis-3.2.5.tar.gz
;
(3) 解压完成后进入目录:cd redis-3.2.5
;
(4)命令ll
进入目录,安装gcc
与g++
环境
运行Make命令时出现错误,提示 gcc:命令未找到 ,原因是因为当前Linux环境中并没有安装
gcc
与g++
的环境!
①联网的情况下(最简单)
命令一:yum install gcc
命令二:yum install gcc-c++
②离线的情况下
在
/usr/local/softwar
目录下创建rpmgcc
目录,用于保存所有的rpm文件,进入rpmgcc
目录中执行:rpm -Uvh *.rpm --nodeps(不检查依赖关系) --force(强制安装)
-ivh
安装-Uvh
升级
命令一:/usr/local/software/rpmgcc
//上传rpm包到该目录下
命令二:cd rpmgcc/
//查看rpm包
命令三:rpm -Uvh *.rpm --nodeps --force
安装完成后使用如下命令查看版本
命令一:gcc -v
命令二:g++ -v
(5) 进入到/usr/local/software/redis-3.2.5
目录下执行make
【编译】命令;
(6)在/usr/local
下新建目录redis
(6)执行完make
后,可跳过Redis test
步骤,直接执行make install PREFIX=/usr/local/redis
(直接指定安装路径!!);
注:默认安装目录/usr/local/bin
参数 | 说明 |
---|---|
redis-benchmark | 性能测试工具,可以在自己本子运行,看看自己本子性能如何(服务启动起来后执行) |
redis-check-aof | 修复有问题的AOF文件,rdb和aof(持久化策略) |
redis-check-dump | 修复有问题的dump.rdb 文件 |
redis-sentinel | 作为一个哨兵,Redis集群使用 |
redis-server | Redis服务器启动命令 |
redis-cli | 客户端,操作入口 |
(9)启动Redis(两种方式)
Redis默认端口号是6379!
①默认前台方式启动【不推荐】 : 直接执行./redis-server
即可,启动后不能操作当前命令窗口!
② 后台方式启动【推荐】
将 /usr/local/software/redis-3.2.5
目录下redis.conf
配置文件拷贝一份到其他目录,例如目录/usr/local/redis/bin
,起到备份的作用!!!
命令一:cp redis.conf /usr/local/redis/bin
修改
redis.conf
文件中部分参数,很重要!
命令二:vim redis.conf
进行文档模式,a
命令进入编辑模式(修改三处)
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes //【1】表明后台可运行
---------------------------------------------------------------------------------------
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#bind 127.0.0.1
//【2】注释默认IP,允许其他IP绑定! 或者修改成 bind *
---------------------------------------------------------------------------------------
# By default protected mode is enabled. You should disable it only if
# you are sure you want clients from other hosts to connect to Redis
# even if no authentication is configured, nor a specific set of interfaces
# are explicitly listed using the "bind" directive.
protected-mode no //【3】关闭受保护的模式,允许外部网络直接访问
命令三:Esc
退出编辑模式,:wq
进入命令模式,保存退出!
命令四:./redis-server redis.conf
执行配置文件进行启动
(10)启动客户端
在
/usr/local/redis/bin
目录下启动
命令一:./redis-cli
3.Redis客户端工具连接
步骤安装
RedisDesktopManager
工具后,自定义连接名,填写Host
,Auth
我没有设置就不用填!
【1】单实例关闭:redis-cli shutdown
【2】多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown
【3】检查进程:ps -ef | grep 6379
如果没有连接成功,回到xshell工具中,检查防火墙有没有关闭!其次检查你的
redis.conf
文件几个属性参数没有修改成功,上面我已经说的!
systemctl status firewalld
//查看防火墙状态
systemctl stop firewalld
//关闭防火墙
☝上述分享来源个人总结,如果分享对您有帮忙,希望您积极转载;如果您有不同的见解,希望您积极留言,让我们一起探讨,您的鼓励将是我前进道路上一份助力,非常感谢!我会不定时更新相关技术动态,同时我也会不断完善自己,提升技术,希望与君同成长同进步!
☞本人博客:https://coding0110lin.blog.csdn.net/ 欢迎转载,一起技术交流吧!