Redis简介

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型

Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

  • Redis支持数据的备份,即master-slave模式的数据备份。

Redis的存储是以key-value的形式的。Redis中的key一定是字符串,value可以是string、list、hash、set、sortset这几种常用的。

Redis并没有直接使用这些数据结构来实现key-value数据库,而是基于这些数据结构创建了一个对象系统

  • 简单来说:Redis使用对象来表示数据库中的键和值。每次我们在Redis数据库中新创建一个键值对时,至少会创建出两个对象。一个是键对象,一个是值对象

Redis是单线程的

Redis服务器是一个事件驱动程序,主要处理以下两类事件:

  • 文件事件:文件事件其实就是对Socket操作的抽象,Redis服务器与Redis客户端的通信会产生文件事件,服务器通过监听并处理这些事件来完成一系列的网络操作

  • 时间事件:时间事件其实就是对定时操作的抽象,前面我们已经讲了RDB、AOF、定时删除键这些操作都可以由服务端去定时或者周期去完成,底层就是通过触发时间事件来实现的

Redis单线程为什么快?

  • 1)纯内存操作

  • 2)核心是基于非阻塞的IO多路复用机制

  • 3)单线程避免了多线程的频繁上下文切换问题

优势

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

  • 丰富的数据类型 –Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合) 。

  • 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。

  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性

下载安装

https://www.cnblogs.com/balloon72/articles/12417114.html

https://www.cnblogs.com/balloon72/articles/12417114.html

docker下载安装

docker pull redis

1、启动、连接docker中的Redis

挂载外部目录
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -d redis:latest redis-server --appendonly yes

本地连接docker中的redis

docker exec -it redis redis-cli

2、启动、连接Linux中的Redis

默认方式启动

./redis-server

通过配置文件启动(docker镜像使用默认方式启动,无配置文件)

./redis-server ../redis.conf

启动redis服务进程后,就可以使用测试客户端程序redis-cli和redis服务交互了

./redis-cli

远程使用密码连接Redis

redis-cli -h host -p port -a password

 连接命令的参数:

  • -c :连接集群结点时使用,此选项可防止moved和ask异常

  • -a :使用密码连接

  • --raw 显示格式化的效果

  • --no-raw 要求返回原始格式,返回二进制形式。

posted @ 2020-05-10 23:34  huiyii  阅读(125)  评论(0编辑  收藏  举报