redis

redis集群数据倾斜

算数据落到哪个槽 用的是crc16

redis
为什么要用Redis?Redis为什么这么快?
几乎覆盖了Memcached的绝大部分功能,升级版。一般作为缓存数据库辅助持久化的数据库
可以持久化,备份恢复。memcached一般不持久化
多线程+锁(Memcached),单线程+io多路复用(redis)
Memcached的value类型只有string。数据向计算移动(全量io存取,反序列化算法)
redis:计算向数据移动(移动数据成本大于移动计算)
io复用:监视select(轮询,最高1024个请求),poll(不限制数量),epoll(标识符)
单线程:worker(6.X io threads)
高版本:IO threads
epoll:多路复用
串行可以保证原子性
6.x之后,默认单线程worker,多线程(io读写)。无论哪个版本,工作线程就一个
连接:nc localhost 6379
redis-cli
dbsize:查看当前库的key数量
keys *
清空:flushdb 清空当前库
flushall 清空所有的16个库,需要恢复

help @string :查看方法

一、5种value类型:

1. string(字符串(strlen是字节长度),数值(incr(+1),decr(秒杀),单线程原子操作,秒杀限流),位图(bitmap,offset溢出会扩容。bitop位操作运算,bitcount(统计登录天数)),

存中文,以 redis-cli --raw 启动
二进制安全(客户端byte数组,只保存不转换)
支持双向索引
统计分析:bitmap布隆过滤器
getrange:[...]
getset:以新换旧,设置新值的同时获得原值

2. list 单键多值,1对n。双向链表,有序可重复。队列.ltrim评论、裁剪数据

lpush,rpush,lpop,rpop
lrange:按照索引下标获取元素(从左到右)。lrange key 0 -1,获取所有元素
lindex,llen(列表长度)
lrem key n value,删除元素(从左到右,n可为正值(从左到右)、负值(从右到左)、0. 为0时,删除所有匹配的值)

3. hash,类似于Map<String,String>。详情页聚合,聚合(数据来自不同的库)

存储对象
hset key field value:给key集合的field键赋值,hset userInfo user:1010:uid 1010
hmset:批量赋值
hkeys:
hvals:
hgetall:获取所有的key与val
hincrby key field increment :加法。increment为负值,减法
hsetnx:当且仅当不存在时可以成功

4. set集合,无序不可重复。去重无序. 随机事件,抽奖,验证码。成本比较大,串行化执行,延时比较大。独立到一个redis实例

提供了判断一个元素是否在set集合的接口,查找并判断是否秒杀成功
底层是一个value为null的hash表,所以添加、删除、查找的复杂度都是O(1)
sadd
smembers <key>:取出所有值
scard <key>:获取元素个数
srem <key> member [member ...]:删除元素
spop <key> [count]:随机吐出元素。抽奖
srandmember <key> [count]:随机取出元素,不删除

sinter key [key ...]:交集
sunion key [key ...]:并集
sdiff key [key ...]:差集。有顺序,前有后没有

5. ZSET(sorted_set),集合,有序去重。以元素为key,以score为value的map。正向zrange,反向zrevrange

score从低到高排序,score可以重复
push/pop 有序,add/remove 无序
排行榜,翻页,动态翻页
底层:skiplist跳跃表
zadd zSet 100 a 20 b 1 x 500 abc:添加
相同元素不同分数,会更新分数。
相同分数不同元素,正常排序
zrange zSet 0 -1:(索引)查看所有元素
zrangebyscore zSet 100 500:按分数范围查看元素
zscore :查看分数
zrevrangebyscore zSet 150 15:从大到小
zrank zSet x:返回x在集合中的索引

场景

排行榜。缓存,统计bitmap,数值,秒杀,限流,迁出 无状态 把java的数据结构外置 session,栈 队列 数组 hash,聚合数据 详情页,抽奖 随机事件,集合:推荐系统
不推荐用在锁,etcd或zookeeper更好

持久化

持久化后,性能下降
2种方式:快照(rdb,恢复速度快,丢失多,占用大,会丢数据),日志(aof,1.每操作,完整性,强调一致性时适用 2.每秒,至多一个buffer。默认 3.os缓存刷写,一个buffer)
默认开启rdb(缓存,丢数据不怕)

redis 4.0 后新增混合持久化


redis 4.0 后新增混合持久化

1. redis混合持久化的配置

1、appendonly yes

2、aof-use-rdb-preamble yes

原因:混合持久化是依赖aof文件的。当满足条件时aof会进行重写(Rewrite),可以避免aof文件过大的问题。如果aof-use-rdb-preamble yes,重写的时候,aof文件内容格式是[RDB file][AOF tail] 明显特征是aof文件的开头为:REDIS。这个是RDB文件的开头。一般默认重写时机为auto-aof-rewrite-percentage 100 ;auto-aof-rewrite-min-size 64mb。即文件达到64m时进行重写,然后如果文件大小增长了一倍,也会触发重写。

可用性

生产系统中,压力(分片集群,代理集群),单点故障(主从主备)
默认弱一致性,支持强一致性(强一致性破坏可用性)。没有最终一致性

分布式锁

多个redis实例,redlock,抢够过半的锁,没过半的销毁.客户端并发并行抢锁。实现复杂,主动轮询
推荐zookeeper,最终一致性。注册回调,事件机制

主从复制实现读写分离

允许远程访问

redis.conf注释掉bind 127.0.0.1,protected-mode改为no
loglevel四个级别,生产环境使用notice或warning
requirepass设置永久密码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353