redis一些笔记
base
字典:
hget/hset
在redis字典中值只能是字符串,使用渐进式进行rehash。在rehash的过程中,会保留两个hash结构;查询时会同时查询两个结构;逐渐完成hash的迁移。
- 如果大部分时候使用结构中的大部分数据,可以选择将整个结构序列化,使用string类型存储。
- 如果大部分时候使用结构中的小部分数据,可以将结构进行拆分再序列化存储。
当hash最后一个元素被删除时,回收内存。
键值对:
get/set
setnx = set if not exist
setex //可以指定ttl
键值对的方式进行存储,可以批量处理键值对。而且能够设置key的过期时间
setex A 5 tyuio # 5s 后过期,等价于 set+expire
set A tyuio
expire A 5
setnx可以实现锁,redis的setnx
- 并发量较高时,缓存到期失效,可能出现大规模访问数据库,需要锁,可以setnx实现;
- 创建了锁却由于宕机没有解开锁崩盘,setnx需要tll,
setnx+expire; - 只有一个请求的 setnx 可以成功,但是任何一个请求的 Expire 却都可以成功(
lua脚本) - 新版redis只用set指令就可以实现上面功能
- 如果一个请求更新缓存的时间比较长,甚至比锁的有效期还要长,导致在缓存更新过程中,锁就失效了,此时另一个请求会获取锁,但前一个请求在缓存更新完毕的时候,如果不加以判断直接删除锁,就会出现误删除其它请求创建的锁的情况,所以我们在创建锁的时候需要引入一个随机值(在val加上随机值,删除时判断下?这个只能解决删除不对应锁的问题)
- 坏情况是每次请求都出现了锁超时,但通过ttl可以保证DB请求的间隔,避免雪崩
集合set
Set可以看成一个特殊的字典
set //列表,去重
zset //有序列表,去重+排序
zset的排序主要通过跳跃列表实现,能够进行快速查找
《Redis 深度历险:核心原理与应用实践》
redis一些笔记的更多相关文章
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- Redis学习笔记~目录
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
- Redis学习笔记4-Redis配置详解
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...
- Redis学习笔记7--Redis管道(pipeline)
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...
- redis入门笔记(2)
redis入门笔记(2) 上篇文章介绍了redis的基本情况和支持的数据类型,本篇文章将介绍redis持久化.主从复制.简单的事务支持及发布订阅功能. 持久化 •redis是一个支持持久化的内存数据库 ...
- redis入门笔记(1)
redis入门笔记(1) 1. Redis 简介 •Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure serv ...
- Redis学习笔记一:数据结构与对象
1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...
- Redis学习笔记之ABC
Redis学习笔记之ABC Redis命令速查 官方帮助文档 中文版本1 中文版本2(反应速度比较慢) 基本操作 字符串操作 set key value get key 哈希 HMSET user:1 ...
- (转)redis 学习笔记(1)-编译、启动、停止
redis 学习笔记(1)-编译.启动.停止 一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...
- Redis学习笔记(二)-key相关命令【转载】
转自 Redis学习笔记(二)-key相关命令 - 点解 - 博客园http://www.cnblogs.com/leny/p/5638764.html Redis支持的各种数据类型包括string, ...
随机推荐
- 第四章——SQLServer2008-2012资源及性能监控(1)专家
http://blog.csdn.net/dba_huangzj/article/details/8614817
- MVP的理解和使用
MVP大家应该差不多都知道了,他其实是MVC的升华版,差不多是在view和model中加了一个调节器,这样view不能直接调用model中得数据,而是通过presenter来进行操作,此外Presen ...
- 【IntelliJ idea/My/ecplise】启动项目前,修改配置JVM参数
My/ecplise下都是一样的: IDEA下:
- scp 时出现permission denied
如果scp到 /usr/local/目录下,则无权限,可更改到用户目录下
- 这一篇里面有很多关于scala的list的操作的好的知识
https://www.cnblogs.com/weilunhui/p/5658860.html 1.++[B] 在A元素后面追加B元素 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
- UNIX&Linux发展图谱
来自为知笔记(Wiz)
- vue2.0 自定义 饼状图 (Echarts)组件
1.自定义 图表 组件 Echarts.vue <!-- 自定义 echart 组件 --> <template> <div> <!-- echart表格 ...
- Balanced Binary Tree——数是否是平衡,即任意节点左右字数高度差不超过1
Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...
- APP公布到应用市场(苹果APP STORE+安卓各大应用市场)
注意事项 1.应用要签名,为了以后可以顺利更新应用.要保持每次的签名一致,所以要妥善保管好签名数据. 2.进行公布測试,最好有个检查表,每次公布的时候进行核查. 苹果APP STORE 一.证书的导出 ...
- Linux Apache 给 awstats 创建 訪问password
CentOS7 安装最新版本号 awstats ,在httpd.conf 中增加了alias,能够直接訪问网址就进入 浏览.十分不安全. 给訪问加上password的方法: [root@localho ...