Redis简介
Redis是完全开源的,遵守BSD协议,是一个高性能的key-value数据库。
Redis与其他key-value缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis优势
- 性能极高——Redis读的速度是110000次/s,写的速度是80000次/s。
- 丰富的数据类型——Redis支持二进制案例的Strings,Lists,Hashes,Sets及Ordered Sets数据类型操作。
- 原子——Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性——Redis还支持publish/subscribe,通知,key过期等等特性。
Redis与其他key-value存储有什么不同?
- Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
- Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。
为什么redis是单线程的?
官方给出的答案为:
因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。
详细原因:
1.不需要各种锁的性能消耗
Redis的数据结构并不全是简单的Key-Value,还有list,hash等复杂的结构,这些结构有可能会进行很细粒度的操作,比如在很长的列表后面添加一个元素,在hash当中添加或者删除。
一个对象。这些操作可能就需要加非常多的锁,导致的结果是同步开销大大增加。
总之,在单线程的情况下,就不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗。
2.单线程多进程集群方案
单线程的威力实际上非常强大,每核心效率也非常高,多线程自然是可以比单线程有更高的性能上限,但是在今天的计算环境中,即使是单机多线程的上限也往往不能满足需要了,需要进一步摸索的是多服务器集群化的方案,这些方案中多线程的技术照样是用不上的。
所以单线程、多进程的集群不失为一个时髦的解决方案。
3.CPU消耗
采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU。
但是如果CPU成为Redis瓶颈,或者不想让服务器其他CUP核闲置,那怎么办?
可以考虑多起几个Redis进程,Redis是key-value数据库,不是关系数据库,数据之间没有约束。只要客户端分清哪些key放在哪个Redis进程上就可以了。
Redis安装
windows下安装
下载地址:https://github.com/tporadowski/redis/releases。
Redis支持32位和64位。这个需要根据你系统平台的实际情况选择,这里我们下载Redis-x64-xxx.zip压缩包到C盘,解压后,将文件夹重命名位redis。

打开文件夹,内容如下:

打开一个cmd窗口,使用cd命令切换目录到C:\redis运行:
redis-server.exe redis.windows.conf
运行后出现如下画面

这时继续在redis目录下执行如下命令:
redis-cli.exe -h 127.0.0.1 -p 6379
出现以下画面

设置键值对:
set myKey abc
取出键值对:
get myKey

至此说明安装成功
Linux源码安装
下载地址:http://redis.io/download,下载最新稳定版本。下载并安装:
# wget http://download.redis.io/releases/redis-6.0.8.tar.gz
# tar xzf redis-6.0.8.tar.gz
# cd redis-6.0.8
# make
执行完make命令后,redis-6.0.8的src目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli:
下面启动redis服务:
# cd src
# ./redis-server
注意这种方式启动redis使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件,使用下面命令启动
# cd src
# ./redis-server ../redis.conf
redis.conf是一个默认的配置文件。我们可以根据自己的需要使用自己的配置文件。
启动redis服务进程后,就可以使用测试客户端程序redis-cli和redis服务进行交互了。如:
# cd src
# ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
Ubuntu apt命令安装
在Ubuntu系统安装Redis可以使用以下命令:
# sudo apt update
# sudo apt install redis-server
启动redis
# redis-server
查看redis是否启动?
# redis-cli
以上命令将打开终端:
redis 127.0.0.1:6379>
127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。
redis 127.0.0.1:6379> ping
PONG
至此说明成功安装了redis。
1082

被折叠的 条评论
为什么被折叠?



