一、入门概述
1.是什么
Redis:REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。
Redis 与其他 key - value 缓存产品(memcached)有以下三个特点:
1)持久化:Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
2)丰富数据结构:Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
3)数据备份:Redis支持数据的备份,即master-slave模式的数据备份
2.能干嘛
1)内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
2)取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
3)模拟类似于HttpSession这种需要设定过期时间的功能
4)发布、订阅消息系统
5)定时器、计数器
3.去哪下
Http://redis.io/
Http://www.redis.cn/
4.怎么玩
1 数据类型、基本操作和配置
2 持久化和复制,RDB/AOF
3 事务的控制
4. 复制
。。。 。。。
二、VMWare+VMTools千里之行始于足下
1.VMWare虚拟机的安装
2.CentOS或者RedHad5的安装
1)如何查看自己的linux是32位还是64位
getconf LONG_BIT
返回是多少就是几位
2)假如出现了不支持虚拟化的问题
我的笔记本cpu是64位的,操作系统也是64位的,问题应该如虚拟机右下角提示所说,
是“宿主机BIOS设置中的硬件虚拟化被禁用了。”
需要打开笔记本BIOS中的IVT对虚拟化的支持。
找到菜单“Security”–“System Security”,
将Virtualization Technology(VTx)和Virtualization Technology DirectedI/O(VTd)设置为 Enabled。
保存并退出BIOS设置,重启电脑,
3.VMTools的安装
4.设置共享目录
5.上述环境都OK后开始进行Redis的服务器安装配置
三、Redis的安装
1.Windows版安装
Window 下安装
下载地址:https://github.com/dmajkic/redis/downloads
下载到的Redis支持32bit和64bit。根据自己实际情况选择,将64bit的内容cp到自定义盘符安装目录取名redis。 如 C:
eids
打开一个cmd窗口 使用cd命令切换目录到 C:
edis 运行 redis-server.exe redis.conf 。
如果想方便的话,可以把redis的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个redis.conf可以省略,
如果省略,会启用默认的。输入之后,会显示如下界面:
这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。
切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379 。
设置键值对 set myKey abc
取出键值对 get myKey
说明:
基本都会使用Linux
2.Linux版安装
1)下载获得redis-3.0.4.tar.gz后将它放入我们的Linux目录/opt
2)/opt目录下,解压命令:tar -zxvf redis-3.0.4.tar.gz
3)解压完成后出现文件夹:redis-3.0.4
4)进入目录:cd redis-3.0.4
5)在redis-3.0.4目录下执行make命令
6)如果make完成后继续执行make install
7)查看默认安装目录:usr/local/bin
Redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
Redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
Redis-check-dump:修复有问题的dump.rdb文件
Redis-cli:客户端,操作入口
Redis-sentinel:redis集群使用
Redis-server:Redis服务器启动命令
8)启动
修改redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动
将默认的redis.conf拷贝到自己定义好的一个路径下,比如/myconf
/usr/local/bin目录下运行redis-server,运行拷贝出存放了自定义conf文件目录下的redis.conf文件
关闭
单实例关闭:redis-cli shutdown
多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown
四、Redis启动后杂项基础知识讲解
1.单进程
单进程模型来处理客户端的请求。对读写等事件的响应
是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率
Epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,
它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
2.默认16个数据库,类似数组下表从零开始,初始默认使用零号库
设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
databases 16
3.Select命令切换数据库
4.Dbsize查看当前数据库的key的数量
5.Flushdb:清空当前库
6.Flushall;通杀全部库
7.统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上
8.Redis索引都是从零开始
9.为什么默认端口是6379
6379在是手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。MERZ长期以来被antirez及其朋友当作愚蠢的代名词。Redis作者antirez同学在twitter上说将在下一篇博文中向大家解释为什么他选择6379作为默认端口号。而现在这篇博文出炉,在解释了Redis的LRU机制之后,向大家解释了采用6379作为默认端口的原因。
参考资料:
《redis视频》尚硅谷周阳