REDIS 六月 05, 2019

redis专题-热点key解决方案

文章字数 2.5k 阅读约需 2 mins.

热key问题就是,突然有几十万的请求去访问redis上的某个特定key。那么,这样会造成流量过于集中,达到物理网卡上限,从而导致这台redis的服务器宕机。

  1. 凭借业务经验,进行预估哪些是热key
  2. 在客户端进行收集
    在操作redis之前,加入一行代码进行数据统计。
  3. 在Proxy层做收集
  4. 用redis自带命令
    • monitor命令,该命令可以实时抓取出redis服务器接收到的命令,然后写代码统计出热key是啥。但是该命令在高并发的条件下,有内存增暴增的隐患,还会降低redis的性能。
    • hotkeys参数,redis 4.0.3提供了redis-cli的热点key发现功能,执行redis-cli时...
查看全文

REDIS 五月 21, 2019

redis专题-必知必会的基础知识

文章字数 7.6k 阅读约需 7 mins.

优点

  • 读写性能优异, Redis能读的速度是110000次/s,写的速度是81000次/s。
  • 支持数据持久化,支持AOF和RDB两种持久化方式。
  • 支持事务,Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。
  • 数据结构丰富,除了支持string类型的value外还支持hash、set、zset、list等数据结构。
  • 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。
    缺点
  • 数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场...
查看全文

REDIS 五月 10, 2019

Redis底层数据结构

文章字数 18k 阅读约需 16 mins.

简单动态字符串(SDS)

相较于C字符串的优点:

  • 常数复杂度获取字符串长度。
  • 杜绝缓冲区溢出。C字符串不记录自身长度容易造成缓冲区溢出,SDS修改时,API会自动将SDS的空间扩展至执行修改所需的大小,然后才执行实际的修改操作。
  • 减少修改字符串时带来的内存重分配次数。SDS采用空间预分配(增长操作)和惰性释放(缩短操作
  • 二进制安全。C字符串只能保存文本数据,而不能保存像图片、音频、视频、压缩文件这样的二进制数据。SDS可以保存任意格式的二进制数据。
  • 兼容部分C字符串函数,避免了不必要的代码重...
查看全文
0%