简单介绍一些Redis的相关知识,包括概念和安装等。
什么是Redis?
Redis(Remote Dictionary Server,远程字典服务器)。它是完全免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSQL数据库之一,也被人们称为数据结构服务器。
Redis与其他key-value缓存产品相比有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用;
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list、set、zset、hash等数据结构的存储;
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis能用来做什么?
- 内存存储和持久化:Redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务;
- 取最新N个数据的操作,如:可以将最新的10条评论ID放在Redis的List集合里面;
- 模拟类似于HTTPSession这种需要设定过期时间的功能;
- 发布、订阅消息系统;
- 定时器、计数器。
Redis的安装
Windows版安装
Windows版下载地址
将安装包解压,然后打开cmd,切换到解压后的目录。
下面我们来启动Redis服务器,命令如下:
redis-server.exe redis.conf
然后,我们另开一个终端,打开Redis客户端连接一下Redis服务器,命令如下:
redis-cli.ext -h 127.0.0.1 -p 6379
最后,我们来测试一下Hello,World!,如下:
Linux版安装
首先,我们先来下载Redis安装包,命令如下:
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
下载完之后,我们将该安装包移动到/opt目录下,命令如下:
sudo mv redis-5.0.5.tar.gz /opt
移动完毕后,我们切换到/opt目录,然后解压该文件,命令如下:
cd /opt
sudo tar -zxvf redis-5.0.5.tar.gz
解压完成后,我们进入解压得到的文件夹,命令如下:
cd redis-5.0.5
在该目录中,进行安装,命令如下:
sudo make
sudo make install
安装完毕后,我们来查看一下默认安装目录,命令如下:
ll /usr/local/bin
我们在用户目录下新建一个目录myredis保存我们自己的redis.conf文件,并进行相应的修改,命令如下:
cd ~
mkdir myredis
cp /opt/redis-5.0.5/redis.conf ./myredis
使用vim打开redis.conf,进行如下修改,daemonize改为yes:
最后,我们使用我们修改过的redis.conf启动Redis,命令如下:
redis-server ~/myredis/redis.conf
我们使用ps命令来看一下,Redis进程是否启动了,命令如下:
ps -ef | grep redis | grep -v grep
这里可以看到Redis Server端启动了,我们启动客户端来连一下,命令如下:
redis-cli -p 6379
我们另外一个终端使用ps来看一下,客户端和服务器的进程,命令如下:
ps -ef | grep redis | grep -v grep
客户端连上服务器之后,我们来测试一下Hello,World!,如下:
最后,我们退出Redis,如下:
最后,我们使用ps命令来看一下Redis的服务器和客户端进程是否还在:
注意事项:
企业里面做Redis开发,99%都是Linux版的运用和安装,几乎不会涉及到Windows版。
Redis简单了解
单进程:
- 单进程模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率;
- epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
相关命令:
- Redis默认16个数据库,类似数组下标从零开始,初始默认使用零号库;
- select命令:切换数据库,我们来演示一下;
- dbsize命令:查看当前数据库的key的数量;
- keys:查看所有key或者部分key;
- flushdb:清空当前库;
- flushall:清空所有库;