博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【攻克Redis】Redis基本知识
阅读量:7074 次
发布时间:2019-06-28

本文共 1119 字,大约阅读时间需要 3 分钟。

【攻克Redis】Redis基本知识

发展史

  • Redis是一种基于键值对的Nosql数据库,Redis值可以是string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、 HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成
  • Redis会将所有数据都存放在内存 中,所以它的读写性能非常惊人。不仅如此,Redis还可以将内存的数据利 
    用快照和日志的形式保存到硬盘上,这样在发生类似断电或者机器故障的时 候,内存中的数据不会“丢失”
  • Redis提供了键过期、发布订阅、事务、流水线、Lua脚本等附加功能

特性

  1. 速度快(10万/秒) 
    • 所有数据存放在内存中
    • 用C语言实现,C语言“距离”操作系统更近
    • 单线程架构,防止多线程可能产生的问题
  2. 基于键值对的数据结构服务器 
    • 主要提供了5种数据结构:字符串、哈希、列表、集合、有序集合
    • 在字符串的基础之上演变 出了位图(Bitmaps)和HyperLogLog两种神奇的“数据结构”
    • Redis3.2版本中 加入有关GEO(地理信息定位)的功能
  3. 丰富的功能 
    • 提供了键过期功能,可以用来实现缓存。
    • 提供了发布订阅功能,可以用来实现消息系统。
    • 支持Lua脚本功能,可以利用Lua创造出新的Redis命令。
    • 提供了简单的事务功能,能在一定程度上保证事务特性。
    • 提供了流水线(Pipeline)功能,这样客户端能将一批命令一次性传到 Redis,减少了网络的开销。
  4. 简单稳定 
    • 源码代码量少
    • 单线程模型开发简单
    • 不需要依赖操作系统类库
  5. 客户端语言多 
    • Redis提供了简单的TCP通信协议,很多编程语言可以很方便地接入到 Redis
  6. 持久化 
    • 两种持久化方式:RDB和 AOF
  7. 主从复制 
    • Redis提供了复制功能,实现了多个相同数据的Redis副本(如图1-2所 示),复制功能是分布式Redis的基础
  8. 高可用和分布式

使用场景

可以做

  1. 缓存

    缓存提高访问速度,降低后端数据库压力,可以设置过期时间,对存储数据进行淘汰。

  2. 排行榜系统

    Redis提供了列表和有序集合数据结构,合理地使用这些数据结构可以很方便地构建各种排行榜系统。

  3. 计数器应用

    视频网站有播放数、电商网站有 浏览数,为了保证数据的实时性,每一次播放和浏览都要做加1的操作

  4. 社交网络

    赞/踩、粉丝、共同好友/喜好、推送、下拉刷新等

  5. 消息队列系统

    Redis提供了发布订阅功能和阻塞队列的功能,虽然和专业的消息队列比还不够足够强大,但是对于一般的消息队列功能基本可以满足。

不可以做

​ 每天产生的数据量特别大(上亿),redis存储经济成本笔记高;一些冷数据不适合存储。

原文地址 

转载地址:http://ezuml.baihongyu.com/

你可能感兴趣的文章
Navicat for MySQL之HTTP和SSH远程连接数据库
查看>>
Android中 android:layout_weight 属性 完美解释
查看>>
简单文件存储进内存
查看>>
LINUX用户、用户组及权限管理
查看>>
Apache Struts2 远程命令执行漏洞
查看>>
.NET Framework 4.6.2改进了WPF和安全性
查看>>
PHP 截取字符串
查看>>
After Interview of Mstar
查看>>
js数组如何去重
查看>>
Linux高速下载工具——Axel
查看>>
3.保安队的日子(下)我当程序员的那些事1
查看>>
控制台登录,提示证书错误
查看>>
Java]Socket和ServerSocket服务器端接受数据
查看>>
grep与正则表达式
查看>>
我的友情链接
查看>>
ThinkSNS开源社交系统安装问题及解决措施
查看>>
2018年微信小程序风口最新发展趋势分析
查看>>
ThinkSNS+ 移动端1.8.2.0704 版本更新简要说明
查看>>
ThinkSNSPlus 2.0 产品体验报告
查看>>
LINUX 中实现逻辑卷、自动挂载
查看>>