Redis,英文全称是Remote Dictionary Server(远程字典服务),ANSI C语言编写、支持网络、可基于内存亦可持持久化的日志型、Key-Value数据库。可以用作数据库、缓存、消息中间件。
- 响应速度快
- 内存读写,比存在磁盘的数据库读写速度快,省去了磁盘IO消耗
- 单线程操作,避免频繁的上下文切换
- 采用了非阻塞IO多路复用机制(I/O多路复用机制:I/O多路复用就是只有单个线程,通过跟踪每个I/O流的状态,来管理多个I/O流)
- 数据容易丢失,因为是在内存中读写
- 依赖内存的大小
- 缓存和数据库双写一致性问题
- 缓存穿透
- 缓存雪崩
- 缓存击穿
1.性能
2.内存使用效率
3.内存空间和数据量大小
4.数据结构支持
5.可靠性
6.应用场景
1. Memcached的内存管理机制
2. Redis的内存管理机制
1. Memcached的分布式存储
2. Redis的分布式存储
缓存、数据共享分布式、分布式锁、全局ID、计数器、位统计、购物车、消息队列、点赞,签到,打卡、排行榜、消息发布和订阅、商品标签
String是Redis最基础的数据结构类型,它是二进制安全的,可以存储图片或者序列化的对象,值最大存储为512M
String 元素组成的字典,适用于存储对象
String 元素组成的无序集合,通过哈希表实现(增删改查时间复杂度为 O(1)),不允许重复。
有序集合(sorted sets),因为在redis中,有序集合相关的操作指令都是以z开头的,比如zrange、zadd、zrevrange、zrangebyscore等等,所以我们都将redis中的有序集合叫做zsets
- 列表,按照 String 元素插入顺序排序。其顺序为后进先出。由于其具有栈的特性,所以可以实现如“最新消息排行榜”这类的功能,redis中的lists在底层实现上并不是数组,而是链表
BitMap是一种实现对位的操作的数据结构,但是其实它本身并不是数据结构,底层其实是字符串,是借助字符串进行位操作的,但是BigMap在Redis中使用却和字符串不太一样,可以理解为这是一个以位为单位的数组,数组的每个单元格存放的是1或者0,数组的下标在BitMaps中被称为偏移量
Redis中的HyperLogLog是一种基于基数估算的算法,所谓基数估算就是在一批数据中不重复的元素个数有多少个
Redis 在 3.2 版本中加入了地理空间(geospatial)以及索引半径查询的功能,主要用在需要地理位置的应用上。将指定的地理空间位置(经度、纬度、名称)添加到指定的 key 中,这些数据将会存储到 sorted set。这样的目的是为了方便使用 GEORADIUS 或者 GEORADIUSBYMEMBER 命令对数据进行半径查询等操作。也就是说,推算地理位置的信息,两地之间的距离,“附近的人”等等场景都可以用它实现。geo 底层原理是使用 zset来实现的
Redis提供了RDB和AOF两种持久化机制
在单体项目中,我们处理多线程同时操作某一处代码块或者变量时就使用 Synchronized 或者 Lock 锁去保证数据的安全性,但是,现在我们基本上都是使用微服务,当我们把服务部署到多个进程中去,这时候使用 Synchronized 或者 Lock 锁就没办法保证数据的安全性,这时候就需要用到分布式锁
到此这篇Redis端口号(redis端口号及其占用的主要资源是什么)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-yjs/19463.html