Redis简介

Posted yjh1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 要求返回原始格式,返回二进制形式。

以上是关于Redis简介的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

如何利用redis来进行分布式集群系统的限流设计

jedis连接redis

react简介

react简介