目录
3:解压完成进入redis目录,进行make(只是编译好)安装
5:跳过make test 继续执行: make install
6:安装完成在/usr/local/bin/ 文件夹下会生成如下几个文件
2:默认16个数据库,类似数组下表从零开始,初始默认使用零号库
3:dbsize查看当前数据库的key的数量,keys *可以查出所有的key,keys k?可以模糊查询
4:flushdb:清空当前库5:Flushall;通杀全部库
6:统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上
一:Redis入门概述
1:是什么
Redis:REmote DIctionary Server(远程字典服务器)
是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器
特点:
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
Redis支持数据的备份,即master-slave模式的数据备份
2:能干嘛
- 内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
- 取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
- 模拟类似于HttpSession这种需要设定过期时间的功能
- 发布、订阅消息系统
- 定时器、计数器
3:去哪下载
http://redis.io/(英文)
http://www.redis.cn/(中文)
二:Redis的安装
1:下载
2:解压
3:解压完成进入redis目录,进行make(只是编译,linux命令)安装
4:如果make出错,那就是没有安装gcc
1:查看gcc版本:gcc --version
1: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 的影响力是如此之大,它的性能提升甚至有望改善所有的自由软件的运行效率,同时它的内部结构的变化也体现出现代编译器发展的新特征。
2:yum install gcc-c++
3:二次make安装
会出现jemalloc/jemalloc.h:没有那个文件或目录的错误提示;原因是第一次make的时候产生了错误的文件,需要运行make distclean(清除编译)之后再make
5:跳过make test 继续执行: make install
6:安装完成在/usr/local/bin/ 文件夹下会生成如下几个文件
注:安装地址在src的makefile文件中可以自定义,这是默认在usr/local下
redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何-服务启动起来后执行
redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
redis-check-dump:修复有问题的dump.rdb文件
redis-cli:客户端,操作入口
redis-sentinel:redis集群使用
redis-server:Redis服务器启动命令
7:启动redis服务
1:前端启动(不推荐)
前台启动,命令行窗口不能关闭,否则服务器停止
2:后端启动(推荐)
1:首先备份一个redis.conf文件出来
2:修改redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动
3:直接启动,在解压的/user/local/bin 下执行redis-server redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
4:查看进程:ps -ef|grep redis
3:客户端访问
8:关闭
单实例关闭:redis-cli shutdown
多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown
9:简单的helloword
10:或者通过utils/install_server.sh来注册Redis服务,直接将redis注册未服务,开机自启动
注:另一份命令
1,yum install wget
2,cd ~
3,mkdir soft
4,cd soft
5,wget http://download.redis.io/releases/redis-5.0.5.tar.gz
6,tar xf redis...tar.gz
7,cd redis-src
8,看README.md
9, make
....yum install gcc
.... make distclean
10,make
11,cd src ....生成了可执行程序
12, cd ..
13,make install PREFIX=/opt/redis5
14,vi /etc/profile
... export REDIS_HOME=/opt/redis5
... export PATH=$PATH:$REDIS_HOME/bin
..source /etc/profile
15,cd utils
16,./install_server.sh (可以执行一次或多次)
a) 一个物理机中可以有多个redis实例(进程),通过port端口区分
b) 可执行程序就一份在目录,但是内存中未来的多个实例需要各自的配置文件,持久化目录等资源
c) service redis_6379 start/stop/stauts > linux /etc/init.d/****
d)脚本还会帮你启动!
17,ps -fe | grep redis
三:Redis启动后的基础设置
1:redis是单线程+多路IO复用技术
单进程模型来处理客户端的请求。对读写等事件的响应
是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率
epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,
它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)
2:默认16个数据库,类似数组下表从零开始,初始默认使用零号库
设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
databases 16