一、Redis入门概述
1、是什么
Redis:REmote DIctionary Server(远程字典服务器)。是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的 微信PK10源码搭建QQ:2152876294 网址diguaym.com
(Key / Value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSQL数据库之一,也被人们称为数据结构服务器。
Redis与其他 key-value缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
Redis不仅仅支持简单的key-value类型的数据库,同时还提供 list、set、zset、hash等数据结构的存储
Redis支持数据的备份,即master-slave模式的数据备份
2、能干嘛?
内存的存储和持久化:Redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
模拟类似于HttpSession这种需要设定过期时间的功能
发布、订阅消息系统
定时器、计数器
3、怎么玩?
数据类型、基本操作和配置
持久化和复制,RDB / AOF
事务的控制
复制
......
二、安装
1、Windows版的安装
下载到的Redis支持32bit和64bit。根据自己实际情况选择,将64bit的内容cp到自定义盘符安装目录取名redis。 如 C:\reids
打开一个cmd窗口 使用cd命令切换目录到 C:\redis 运行 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
注意(重要提示):由于企业里面做Redis开发,99%都是Linux版的运用和安装,几乎不会涉及到Windows版。
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命令
运行make命令时出现的错误解析:
① 安装gcc
yum install gcc-c++
gcc是linux下的一个编译程序,是C程序的编译工具。
GCC(GNU Compiler Collection) 是 GNU(GNU's Not Unix) 计划提供的编译器家族,它能够支持 C, C++, Objective-C, Fortran, Java 和 Ada 等等程序设计语言前端,同时能够运行在 x86, x86-64, IA-64, PowerPC, SPARC 和 Alpha 等等几乎目前所有的硬件平台上。鉴于这些特征,以及 GCC 编译代码的高效性,使得 GCC 成为绝大多数自由软件开发编译的首选工具。虽然对于程序员们来说,编译器只是一个工具,除了开发和维护人员,很少有人关注编译器的发展,但是 GCC 的影响力是如此之大,它的性能提升甚至有望改善所有的自由软件的运行效率,同时它的内部结构的变化也体现出现代编译器发展的新特征。
6)再进行二次make,若报出:Jemalloc/jemalloc.h:表示没有那个文件或目录,那就 运行make distclean之后再make。
Redis Test可以不用执行
安装TCL
7)如果make完成之后,继续执行 :
make install
8)查看默认安装目录:usr/local/bin
① Redis-benchmark:性能测试工具,可以在自己本子上运行,看看自己本子性能如何——服务启动起来后执行
② Redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
③ Redis-check-dump:修复有问题的dump.rdb文件
④ Redis-sentinel:Redis集群使用
⑤ Redis-server:Redis服务器启动命令
9)启动
修改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