免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 34240 | 回复: 25

[Redis] [话题讨论]如何用好Redis(获奖名单已公布-2014-09-25) [复制链接]

论坛徽章:
1
天蝎座
日期:2013-12-06 18:23:58
发表于 2014-08-11 10:30 |显示全部楼层
获奖名单已公布,详情请看:http://bbs.chinaunix.net/thread-4155513-1-1.html

话题背景:

Redis是一个使用C语言编写的开源高性能Key-Value数据库,提供多种语言的API,想必大家已经在生产环境中大量使用过了,国内也有非常多的大型应用在使用Redis。那你了解过为什么Redis能获得如此广泛的使用,到底是哪些原因让他性能这么突出?所谓知己知彼百战百胜,大家来聊聊使用Redis的感受吧。

本期话题:

1. 现在Redis有被滥用的趋势,如何合理使用Redis,谈谈自己的认识。
2. 如何正确使用Redis的各种数据结构,比如list,set,hash等等。
3. 因为对Redis了解不够透彻,想必都踩过一些坑吧,比如,你使用过HGETALL吗? BGREWRITEAOF重写AOF文件会不会影响服务?聊聊踩过的坑吧,也可以从源码的层次上分析问题。

活动时间:

2014-8-11至2014-9-11

活动奖励:

Redis设计与实现 资深Redis技术专家撰写,深入了解Redis技术内幕的必读之作。从源码角度解析Redis的架构设计、实现原理和工作机制,为高效使用Redis提供原理性指导

本期奖品:
《Redis设计与实现》

作者: 黄健宏   
丛书名: 数据库技术丛书
出版社:机械工业出版社
ISBN:9787111464747
上架时间:2014-6-3
出版日期:2014 年6月

样章试读:
http://wenku.it168.com/d_001459495.shtml

论坛徽章:
0
发表于 2014-08-11 11:33 |显示全部楼层
发了半个小时居然没有人回复么。
如何用好redis。
我对redis的使用也只是刚接触,提不出什么好的见解,但是一直有一些困惑。提三个问题,看看能不能引出高人的思路,楼主不介意吧。
目前大型集群基本都使用了proxy方案,比较出名的就是twemproxy。

1 上线业务在有时候会出现time out情况,经过排查基本是由于redis层RDB机制导致的,这方面有什么好的优化方案吗?
2 目前很多业务严重依赖redis,有一些不设置超时时间,几乎当作DB在用,在这种情况下,对redis-proxy集群做在线扩容,如果直接加机器,对proxy访问就会出现数据丢失的情况。不使用tail,ssdb之类的方式,不修改redis代码,有什么好的优化方案吗?
3 redis 的非string对象,例如hash对象,由于key - field - value的数据结构,在proxy下只能对key做hash,因此在大容量的非string对象存在时,就会使得redis集群分布严重不均衡,包括官方的redis 3.0也存在这样的问题。
   为了保证分布均衡,业务层不得不对key进行切分,这样对非string对象做排序之类就无法进行,这方面有什么好的优化方案吗?

另外目前的redis 3.0 apache版本如何,有哪位大神用在上线环境了吗?
写的可能不是很清楚详尽,顿首望高人答疑解惑。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
发表于 2014-08-11 12:26 |显示全部楼层
本帖最后由 wenhq 于 2014-08-25 18:30 编辑

1. 现在Redis有被滥用的趋势,如何合理使用Redis,谈谈自己的认识。
a.那最近遇到的一些case来说吧,有些业务线用的是redis+keepalived 结构。但其中redis master 因io的问题导致访问无响应,这时keepalived还是检测到master在运行,实际上已经不可用了。
2. 如何正确使用Redis的各种数据结构,比如list,set,hash等等。
我们在使用keys的时候会遇到redis压力过大导致没有相应的情况。ltwemproxy中有些命令是无法执行的。
3. 因为对Redis了解不够透彻,想必都踩过一些坑吧,比如,你使用过HGETALL吗? BGREWRITEAOF重写AOF文件会不会影响服务?聊聊踩过的坑吧,也可以从源码的层次上分析问题。
bgwriteaof会对服务有一定的影响。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
发表于 2014-08-11 12:26 |显示全部楼层
支持,稍后补充。先吃饭

论坛徽章:
218
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:3215-16赛季CBA联赛之上海
日期:2019-09-20 12:29:32操作系统版块每日发帖之星
日期:2016-03-02 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58月度论坛发贴之星
日期:2016-01-31 22:25:02操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
发表于 2014-08-11 12:32 |显示全部楼层
redis有个好的地方可持久性,重启系统后数据保留,
不好的地方,数据量访问量大了后会偶尔在短时间内失去响应,就是坑

论坛徽章:
31
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
发表于 2014-08-11 13:21 |显示全部楼层
本帖最后由 jieforest 于 2014-08-11 23:27 编辑

好书,占位
——————————————
1. 现在Redis有被滥用的趋势,如何合理使用Redis,谈谈自己的认识。
Redis是否被滥用,主要还是取决于架构师是否对Redis有正确的认识。
Redis是“数据结构”的服务器,基于键值存储,是内存数据库,可持久化到磁盘,支持主从复制。
Redis的特点是高性能,持久存储,适应高并发。
Redis的集群目前还是一个老大难的问题,据官方说在Redis 3.0会发布支持集群的版本。
Redis支持所有的主流编程语言,有Python、Ruby、Erlang、PHP等客户端,使用很方便。
Redis的应用场景是很广泛的,比如:替代Memcached,构建队列系统,构建发布/订阅的实时消息系统,作为计数器,构建排行榜应用等等。
对Redis有清晰的认识,就不会滥用Redis。

2. 如何正确使用Redis的各种数据结构,比如list,set,hash等等。
Redis支持的数据结构的类型有很多,以题目说的list为例,是列表数据结构,使用LPUSH、LRANGE等命令操作列表对象,有两种编码方式:REDIS_ENCODING_ZIPLIST和REDIS_ENCODING_LINKEDLIST,弄清楚列表命令的实现是正确使用列表数据结构的前提。BLPOP、BRPOP和BRPOPLPUSH三个命令都可能造成客户端被阻塞,可称为列表的阻塞原语,当阻塞原语被用于空列表时,会阻塞客户端;当阻塞原语用于非空列表时,会执行无阻塞版本的LPOP、RPOP和RPOPLPUSH命令。
其他的数据结构类似,弄清楚其实现原理才能更好的使用它。

3. 因为对Redis了解不够透彻,想必都踩过一些坑吧,比如,你使用过HGETALL吗? BGREWRITEAOF重写AOF文件会不会影响服务?聊聊踩过的坑吧,也可以从源码的层次上分析问题。
在Redis开发方面,我遇到的坑是应用场景方面的。
业务场景中有这样的需求,要在内存中存储“用户名”->“标识字符串”,而且用户名和标识字符串都是唯一的。可以通过用户名查找标识字符串。
这是典型的键值存储,用Redis搞定很合适。
在项目开发到一半的进度,客户又提出了新需求,前面的不变,加上新的需求:要求能够通过标识字符串查找对应的用户名。
也就是说,在Redis的键值存储中,要求通过值去查找键名。
这就很麻烦了,Redis没有这样的功能。
最终我们采用了别的手段来搞定了这个新需求。

论坛徽章:
218
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:3215-16赛季CBA联赛之上海
日期:2019-09-20 12:29:32操作系统版块每日发帖之星
日期:2016-03-02 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58月度论坛发贴之星
日期:2016-01-31 22:25:02操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
发表于 2014-08-11 14:47 |显示全部楼层
回复 2# tedcy


    hash本来就是不均匀的,碰运气了,

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2014-08-11 15:12 |显示全部楼层
好活动支持下。

论坛徽章:
0
发表于 2014-08-11 16:02 |显示全部楼层
回复 7# action08

twemproxy的一致性哈希目前对key数量分布还是非常均衡的
但是大key对象严重影响了分布性能,线上0.8G VS 3.2G也是存在的

切分业务的大KEY对象只是权益之计

长远来看,需要一个比较好的解决方案啊。。


   

论坛徽章:
218
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:3215-16赛季CBA联赛之上海
日期:2019-09-20 12:29:32操作系统版块每日发帖之星
日期:2016-03-02 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58月度论坛发贴之星
日期:2016-01-31 22:25:02操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
发表于 2014-08-11 16:10 |显示全部楼层
本帖最后由 action08 于 2014-08-11 16:43 编辑

回复 9# tedcy

但是大key对象严重影响了分布性能

不好意思,我有点书面化哈,没理解你要表达什么

分布性能是说大key计算本身影响性能,还是分布情况不理想??
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时9.5折

【架构革新 高效可控】2020年8月17日~19日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP