Redis相关介绍

流楚丶格念 2021-07-20 04:19:39
redis


缓存数据库:redis 1 为什么需要缓存?
  • 5400转的笔记本硬盘:50-90MB/s
  • 7200转的台式机硬盘:90-190MB/s
  • 固态硬盘读写速度可以达到500MB/s
  • 内存DDRIII1333的速度读写速度大概在8G/s
  • 其他频率的条子速度根据大小会有很大的浮动
2 什么是redis

2.1 redis简介

redis是一个开源的key-value存储系统。与memcached类似,redis将大部分数据存储在内存中。redis支持的数据类型包括:字符串、 哈希表、链表、集合、有序集合以及基于这些数据类型的相关操作。

简单而言,redis基于内存操作,读写速度很快,100000读写/秒,可以作为内存型缓存服
务器,提供持久化存储方案,可以作为结构不复杂的数据库使用。

redis使用C语言开发,在大多数像Linux、BSD和Solaris等 POSIX系统上无需任何外部依赖就可以使用。

redis支持的客户端语言也非常丰富,常用的计算机语言如C、C#、C++、Object-C、PHP、Python、Java、Perl、Lua、Erlang等均有可用的客户端来访问redis服务器。

当前redis的应用已经非常广泛,国内像新浪、淘宝,国外像Flickr、Github等均在使用redis的缓存服务。

2.2 redis优点

redis有三个主要使其有别于其它很多竞争对手的特点:
1)redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性目的
2)redis相比许多键值数据存储系统有相对丰富的数据类型
3)redis可以将数据复制到任意数量的从服务器中

redis 优点:

  • 异常快速: redis是非常快的,每秒可以执行大约110000设置操作,81000个/每秒的读取操作。
  • 支持丰富的数据类型: redis支持最大多数开发人员已经知道如列表、集合、可排序集合、哈希等数据类型。
  • 操作都是原子的:所有 redis 的操作都是原子(所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它是最小的执行单位,不可能有比它更小的执行单位),从而确保当两个客户同时访问 redis 服务器得到的是更新后的值(最新值) 。
  • MultiUtility工具:redis是一个多功能实用工具,可以在很多如:缓存,消息传递队列中使用( redis原生支持发布/订阅) ,在应用程序中,如:Web应用程序会话、网站页面点击数等任何短暂的数据。

2.3 redis使用场景

1)取最新N个数据的操作
比如典型的取你网站的最新文章,我们可以将最新的5000条评论的ID放在redis的List集合中,并将超出集合部分从数据库获取。

2)排行榜应用,取TOP N操作
这个需求与上面需求的不同之处在于,前面操作以时间为权重,这个是以某个条件为权重,比如按顶的次数排序,这时候就需要我们的sorted set出马了,将你要排序的值设置成sorted set的score,将具体的数据设置成相应的value,每次只需要执行一条ZADD命令即可。

3)需要精准设定过期时间的应用
比如你可以把上面说到的sorted set的score值设置成过期时间的时间戳,那么就可以简单地通过过期时间排序,定时清除过期数据了,不仅是清除redis中的过期数据,你完全可以把redis里这个过期时间当成是对数据库中数据的索引,用redis来找出哪些数据需要过期删除,然后再精准地从数据库中删除相应的记录。

4)计数器应用
redis的命令都是原子性的,你可以轻松地利用INCR,DECR命令来构建计数器系统。

5)uniq操作,获取某段时间所有数据排重值
这个使用redis的set数据结构最合适了,只需要不断地将数据往set中扔就行了,set意为集合,所以会自动排重。

6)Pub/Sub构建实时消息系统
redis的Pub/Sub系统可以构建实时的消息系统,比如很多用Pub/Sub构建的实时聊天系统的例子。

7)构建队列系统
使用list可以构建队列系统,使用sorted set甚至可以构建有优先级的队列系统。

8)缓存
最常用,性能优于memcached(被libevent拖慢),数据结构更多样化。

版权声明
本文为[流楚丶格念]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15265965/2894329

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云