一、入门概述
-
Redis: Remote Directory Server(远程字典服务器)
–完全开源免费
–由C语言编写实现
–遵守BSD协议
–高性能的Key/Value分布式内存数据库
–基于内存运行且支持持久化的NoSQL数据库
–又被称为数据结构服务器 -
Redis较其他KV键值缓存产品(如MemCache)的三个特点
(1)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用(2)Redis不仅仅支持简单的KV键值类型的数据,同时还提供list,set,zset,hash等丰富数据结构的存储
(3)Redis支持数据备份,即Master-Slave模式的数据备份
-
Redis应用场景
(1)内存存储和持久化:Redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
(2)获取最新N个数据的操作,如可以将最新10条评论的ID放在Redis的List中
(3)模拟类似HttpSession这种需要设定过期时间的功能
(4)发布订阅的消息系统(消息中间件)
(5)定时器、计数器
二、安装Redis
-
安装虚拟机与CentOS
-
上传redis-xxx.tar.gz至/opt并解压
-
进入解压目录cd redis-xxx
-
执行命令:make
可能遇到的错误
(1)gcc: Command not found[缺少gcc环境]
解决方法:安装gcc
–环境能上网:yum install gcc-c++
–环境不能上网:依次安装镜像文件中自带的rpm( cpp, kernel-headers, glibc-devel, libgomp, gcc ),执行gcc -v检查
再次执行命令:make
(2)fatal error: jemalloc/jemalloc.h: No such file or directory[第一次执行make失败残存文件]
解决方法:先执行make distclean进行清理,再执行makemake完成的效果
可以不用执行Redis Test,即make test
若要执行,需要下载并安装TCL插件 -
执行make install检查
-
修改/opt/redis-xxx目录下的redis.conf
将配置项daemonize改为yes -
启动Redis服务器,执行redis-server /opt/redis-xxx/redis.conf(指定使用的配置文件路径,最好不要直接修改原版配置文件,备份后修改副本)
-
启动Redis客户端,执行redis-cli -p 6379(默认端口),发送ping检查是否启动成功,效果如图
-
两步关闭
三、Redis启动后基础“杂项”相关
- 单进程
单进程模型处理客户端的请求。通过Linux的epoll函数的包装完成对读写等事件的响应。Redis的实际处理速度完全依靠主进程执行效率。Epoll是Linux内核为处理大批量文件描述符而改进的epoll,是Linux下多路复用I/O接口select/poll的增强版本。能够显著提高程序在大量并发链接中只有少量处于活跃情况下的系统CPU利用率
- 一个Redis实例默认16个数据库(字典),下表从0开始,默认初始使用0号库
配置文件redis.conf中设置 # Set the number of databases. The default database is DB 0, you can select #a different one on a per-connection basis using SELECT <dbid> where # dbid is a number between 0 and 'databases'-1 databases 16
- Redis-cli的部分命令
Redis-cli下支持Tab补全命令 说明 SELECT {dbid} 切换当前数据库
如select 0DBSIZE 查看当前数据库的“key”总数 KEYS {pattern} 查看符合表达式,支持Ant风格
如keys k?SET {key} {value} 添加键值对到当前库 GET {key} 获取key对应的value FLUSHDB 清空当前库
使用Tab补全时,默认提示FLUSHALL,即清空所有库 - 统一密码管理
16个数据库(字典)都是同样的密码 - Redis索引都是从0开始