Redis(一)基础
Redis Remote Dictionary Server 远程字典服务器
功能
缓存(当空间达到限制时,可以按照一定规则,淘汰部分数据)
队列(支持阻塞式读取)
订阅/发布(可以将其做出聊天室)
特点
内存存储
可以持久化
数据类型丰富
单线程
命令都是原子操作
命令简单
常用命令
keys pattern 获取符合规则的key列表
注:? 一个字符
* 0到多个字符
[] 方括号中的任意字符(‘-’表示范围)
exists key 该key是否存在(1存在,0不存在)
del key ... 删除一个或多个key(不支持通配符,但可以通过Linux命令来达到模式匹配的目的)
type key 获取key的类型
字符串操作 命名 “对象类型:ID:对象属性”
set key value (可以覆盖同名key 无论是什么类型)
get key
incr key(当value为整数时+1,并返回+1后的值;若不是整数error;没有该key时,默认原先值为0)
自增ID 设立一个key 命名为 “对象类型:count”
位操作 存储只有几种值得字段特别省空间
散列表 命名 “对象类型:ID” (解决hash冲突时用拉链法)
hset key field value (若field存在,即更新)(hsetnx field存在 不操作)
hget key field
hmset key field value [...]
hmget key field [...]
hgetall key
hincrby key field increment (能增加浮点数吗?)
hdel key field []
hkeys key 返回全部键
hvals key 返回全部值
hlen key 字段数量
列表(内部实现是用链表,两头快中间慢)(适用于新鲜事、日志系统)
lpush key value [...] 左边添加
rpush key value [...] 右边添加
lpop key 左弹出
rpop key 右弹出
llen key 列表中有多少元素
lrange key start stop 返回(从左开始)start stop之间的片段(0表示左边第一个)(为负数是表示从右开始,-1表示右边第一个)
ltrim key start stop 截取start stop之间的片段(不返回)
lrem key count value
count>0 删除左开始前count个值为value的元素
count=0 删除所有值为value元素
count<0 删除右开始前count个值为value的元素
lindex key index 返回指定位置的元素(index为位置)
linsert key before/after pivot value 从左往右查找值为pivot的元素,更具before/after决定将value插在它的前面还是后面
rpoplpush source destination 从源的右边弹出,再将该元素压入目标的左边
集合(用无value的散列表实现)
sadd key member [...] 添加元素
srem key member [...] 删除元素
smembers key 返回全部元素
sismember key member 是否在集合中
sdief keyA [keyX ...] 集合差集(元素属于A且不属于后面的集合)
sinter keyA [keyX ...] 集合交集(所有集合的公共部分)
sunion keyA [keyX ...] 集合并集(所有集合的所有部分)
scard key 集合元素的个数
sdiefstore destination keyA [keyX ...] 将集合运算结果放入destination中
sinterstore destination keyA [keyX ...]
sunionstore destination keyA [keyX ...]
spop key 从集合中弹出一个元素
srandmember key [count] 从集合中随机得到count个元素
count不写默认为1
count正数 返回不重复的
count负数 返回可重复的
不是很随机,原理是先随机找一个拉链,再随机找拉链上的值
有序集合(散列表和跳跃表实现的,读中间值也快,耗内存)
zadd key score member [...] 增加分数和成员(+inf 正无穷 -inf 负无穷)
zscore key member 得到元素的分数
zrange key start stop [withscores] 将start 和 stop之间的元素 从小到大排列输出 (带着后面的参数就会输出分数)
zrevrange 从大到小输出
zrangbyscore key min max [withscores] [limit offset count] 得到分数在min 到max之间的元素
在min、max前加"("表示不包括这个值
limit 偏移offset开始 输出count个
zincrby key increment member 为某个成员加上increment分 ,increment可为负
zcard key 获得数量
zcount key min max 获得分数在某个范围之内的数量
zrem key member [...] 删除一个或多个元素
zremrangebyscore key min max 按分数删除元素
zremrangebyrank key start stop 按排名删除元素
zrank key member 从小到大(最小为0)得到member的排名
zrevrank key member 从大到小
zinterstore destination numkeys(集合数量) key[...] [weights [各个集合的权重]] [重复值计算方式]
总结:
1为成功 0为失败
长度 列表为len 集合为card
删除 rem
位置 0 表示正着第一个 -1 表示负的第一个
增加值 incrby 可为负(列表、集合没有)
顺序:默认 从左到右 从小到大
Redis(一)基础的更多相关文章
- Redis学习---基础学习[all]
什么是NoSQL型数据库 NoSQL数据库---NoSQL数据库的分类 Redis学习---NoSQL和SQL的区别及使用场景 Redis学习---负载均衡的原理.分类.实现架构,以及使用场景 什么是 ...
- Redis 宝典 | 基础、高级特性与性能调优
转载:Redis 宝典 | 基础.高级特性与性能调优 本文由 DevOpsDays 本文由简书作者kelgon供稿,高效运维社区致力于陪伴您的职业生涯,与您一起愉快的成长. 作者:kelgon ...
- redis最基础的入门教程
Redis最基础入门教程 简介 Redis 简介 Redis 优势 Redis与其他key-value存储有什么不同? 字符串(Strings) 哈希(Hash) 列表(List) 集合(Sets ...
- 探索Redis设计与实现1:Redis 的基础数据结构概览
本文转自互联网 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial ...
- 小白也能看懂的Redis教学基础篇——朋友面试被Skiplist跳跃表拦住了
各位看官大大们,双节快乐 !!! 这是本系列博客的第二篇,主要讲的是Redis基础数据结构中ZSet(有序集合)底层实现之一的Skiplist跳跃表. 不知道那些是Redis基础数据结构的看官们,可以 ...
- 小白也能看懂的Redis教学基础篇——做一个时间窗限流就是这么简单
不知道ZSet(有序集合)的看官们,可以翻阅我的上一篇文章: 小白也能看懂的REDIS教学基础篇--朋友面试被SKIPLIST跳跃表拦住了 书接上回,话说我朋友小A童鞋,终于面世通过加入了一家公司.这 ...
- Redis从基础命令到实战之有序集合类型(SortedSet)
有序集合类型是Redis五种数据类型中最高级的.也是最复杂的类型.有序集合具有集合类型的特性,在其基础上给每个元素关联了一个分值,或称为权重,操作时既可以在添加元素时指定分值,也可以单独修改集合中某一 ...
- Redis从基础命令到实战之集合类型(Set)
Redis集合类型的基础功能也是存储字符串列表,和列表类型的区别是字符串不能重复且没有顺序.当然,存储元素唯一性也可以通过应用程序保证,单从这一点上并没有体现出对比列表类型的特点. 其实,集合类型的一 ...
- Redis从基础命令到实战之列表类型(List)
经过上一篇基于Redis散列类型的改造后,实战练习中的商品管理已经具备了增加.修改整体.修改部分属性和分页查询功能,但仍然不支持删除商品的功能.这是因为商品总数是以一个自增数字记录的,且关联了新商品k ...
- 新手初学Redis之基础知识命令
笔者最初接触Redis是因为了解了一些nosql方面的知识,觉得nosql是一个很有意思的方面.像其中的mongodb,redis等等.当初也没有深入的去了解Redis,直到自己前段时间在写一个web ...
随机推荐
- oracle修改字符集
在linux下面安装了oracle 11G,由于安装的时候没有注意导致字符集问题,impdp导入操作后中文乱码. 1.用命令select userenv('language') from dual; ...
- 检测Linux VPS是Xen、OpenVZ还是KVM真假方法
如果大家对自己购买和使用的VPS需要检测是否为真的Xen,我们可以用如下方法进行测试.比较专业的就是用virt-what脚本进行检测.检测Linux VPS是Xen.OpenVZ还是KVM真假方法方法 ...
- 64位.net调用32位com服务(c++)
说明: 因64位.net无法调用32位dll,才采用调用进程外com形式. 该项目必须为release时编译才不会报错. 项目调用时,添加引用->com中找到该com服务,添加即可. 部署: 启 ...
- 国内常用DNS地址介绍
1.谷歌全球通用DNS地址: 首选DNS地址:8.8.8.8 备选DNS地址:8.8.4.4 2.国内知名的114 DNS地址 首选DNS地址:114.114.114.114 备选DNS地址:114. ...
- mysql load data 乱码的问题
新学mysql在用load data导入txt文档时发现导入的内容,select 之后是乱码,先后把表,数据库的字符集类型修改为utf8,但还是一样,最后在 http://bbs.chinaunix. ...
- 哆啦A梦 canvas
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- UITableViewCell重用导致内容混乱方案
UITableViewCell *cell=nil; static NSString *reuse=@"cell"; if (cell==nil) { cell=[[UITable ...
- Mybtis框架总结(一)
一:Mybaits下载并搭建核心框架 1:下载mybatis的jar包: 2:创建mybatis框架链接数据库的配置文件Configuration.xml,格式如下 <!DOCTYPE conf ...
- subline text3 删除行 快捷键设置
打开 首选项-->按键绑定 { "keys": ["ctrl+shift+k"], "command": "run_macr ...
- Access、Hybrid和Trunk
以太网端口有三种链路类型:Access.Hybrid和Trunk.Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口:Trunk类型的端口可以属于多个VLAN,可以接收和发送多个VL ...