redis介绍

五种数据类型

String:命令-set\get\del\

list:命令-rpush\lrange\lindex\lpop

set:命令-sadd\smembers\smember\srem

hash:命令-hset\hgetall\hdel\hget

zset:命令-zadd\zrange\zrangebyscore\zrem

适合场景

1.计数器 String可进行自增减。Redisp这种内存数据库读写性能非常高

2.缓存 热点数据放到内存中

3.查找表 查找快的特性。

4.消息队列 list双向链表,通过 lpop lpush写入读取。可以做,但是还是推荐用消息中间件

5.会话缓存 redis存多台应用服务器的会话信息

6.分布式锁 在分布式场景下,无法使用单机锁对多个结点上的进程进行同步。可以用setnx命令实现分布式锁

7.ZSet可以实现有序性操作,从而实现排行榜等功能

优势

1.速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)

2.支持丰富数据类型,支持string,list,set,sorted set,hash

3.支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行

4.丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

和memcached相比

数据类型:m只支持字符串,r支持五种了

数据持久化:r两种持久策略Rdb aof,m不支持

分布式:m不支持

内存管理机制:r很久没用的会放到磁盘。m一直在内存。Memcached 将内存分割成特定长度的块来存储数据,以完全解决内存碎片的问题。但是这种方式会使得内存的利用率不高,例如块的大小为 128 bytes,只存储 100 bytes 的数据,那么剩下的 28 bytes 就浪费掉了。

回收策略

volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰

volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰

volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择 数据淘汰

allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰

allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰

no-enviction(驱逐):禁止驱逐数据

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • (1)什么是redis? Redis 是一个基于内存的高性能key-value数据库。 (有空再补充,有理解错误或...
    走过路过_97c2阅读 757评论 0 1
  • 介绍 Redis是一个开源的高性能的key-value存储系统。具有以下特点:1、Redis支持数据的持久化,可以...
    tracyzht阅读 10,405评论 0 4
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,401评论 2 89
  • Redis概述 1.1、Redis介绍 redis是一款基于内存的缓存系统或者数据库。支持持久化。 redis支持...
    枫叶鱼水阅读 558评论 0 1
  • Redis的那些最常见面试问题 随笔:经过长达一周的奔波和面试,电话面试,回首今天终于成功的入职了,总共面试了大概...
    伐无道阅读 451评论 0 1

友情链接更多精彩内容