学习笔记:Redis数据结构
来源:互联网 发布:如何安装sai软件 编辑:程序博客网 时间:2024/06/05 07:27
Redis可以存储键与7种数据结构之间的映射,这7种数据类型包括String、List、Set、Sorted set(Zset)、Hash、Bit array(Bitmap)和HyperLogLog(HLL)。
①String
字符串。可以是string、int和float。
- SET:设置键中的存储值。
- GET:获取键中的存储值。
- STRLEN:获取键值的字符长度。
- DEL:删除键中的存储值(通用命令 → 适用于所有7种数据类型)。
127.0.0.1:6379> get hello(nil)127.0.0.1:6379> set hello worldOK127.0.0.1:6379> get hello"world"127.0.0.1:6379> strlen hello(integer) 5127.0.0.1:6379> del hello(integer) 1127.0.0.1:6379> get hello(nil)127.0.0.1:6379>
②List
列表。若干String的有序存储。
- LPUSH / RPUSH:将一个给定元素推入List的左端 / 右端。
- LPOP / RPOP:从List的左端 / 右端弹出和返回一个元素。
- LINDEX:获取List给定位置上的元素(索引)。
- LRANGE:获取List给定范围内的元素(分片)。
- LLEN:返回List中的元素数量。
127.0.0.1:6379> rpush list item(integer) 1127.0.0.1:6379> rpush list item2(integer) 2127.0.0.1:6379> rpush list item(integer) 3127.0.0.1:6379> lrange list 0 -11) "item"2) "item2"3) "item"127.0.0.1:6379> lindex list 1"item2"127.0.0.1:6379> lpop list"item"127.0.0.1:6379> lrange list 0 -11) "item2"2) "item"127.0.0.1:6379> llen list(integer) 2127.0.0.1:6379>
③Set
集合。去重和无序的List。
- SADD:给定元素添加到Set。
- SREM:给定元素从Set移除(如果有的话)。
- SISMEMBER:检查给定元素是否存在于Set中。
- SMEMBERS:返回Set中的所有元素(慎用 → 如果Set中的元素很多执行速度可能会很慢)。
- SCARD:返回Set中的元素数量。
127.0.0.1:6379> sadd set item(integer) 1127.0.0.1:6379> sadd set item2(integer) 1127.0.0.1:6379> sadd set item3(integer) 1127.0.0.1:6379> sadd set item(integer) 0127.0.0.1:6379> smembers set1) "item3"2) "item"3) "item2"127.0.0.1:6379> sismember set item4(integer) 0127.0.0.1:6379> sismember set item(integer) 1127.0.0.1:6379> srem set item2(integer) 1127.0.0.1:6379> srem set item2(integer) 0127.0.0.1:6379> smembers set1) "item3"2) "item"127.0.0.1:6379> scard set(integer) 2127.0.0.1:6379>
④Sorted set(Zset)
排序集合。存储键值对:键称为成员(member),必需唯一;值称为分值(score),必须为float。
- ZADD:同SADD。
- ZREM:同SREM。
- ZRANGE:同LRANGE。
- ZRANGEBYSCORE:返回Zset中给定score范围内的所有元素。
- ZCARD:返回Zset中的元素数量。
127.0.0.1:6379> zadd zset 728 member1(integer) 1127.0.0.1:6379> zadd zset 982 member0(integer) 1127.0.0.1:6379> zadd zset 982 member0(integer) 0127.0.0.1:6379> zrange zset 0 -11) "member1"2) "member0"127.0.0.1:6379> zrange zset 0 -1 withscores1) "member1"2) "728"3) "member0"4) "982"127.0.0.1:6379> zrangebyscore zset 0 800 withscores1) "member1"2) "728"127.0.0.1:6379> zrem zset member1(integer) 1127.0.0.1:6379> zrem zset member1(integer) 0127.0.0.1:6379> zrange zset 0 -1 withscores1) "member0"2) "982"127.0.0.1:6379> zcard zset(integer) 1127.0.0.1:6379>
⑤Hash
散列。键与若干键值对映射的存储。Mini Redis——Redis本身就是存储键与7种数据结构之间的映射。
- HSET:给定键值对关联到Hash。
- HGET:获取Hash中给定键的值。
- HDEL:移除Hash中的给定键(如果有的话)。
- HGETALL:获取Hash中的所有键值对。
- HLEN:返回Hash中的键值对数量。
127.0.0.1:6379> hset hash key1 value1(integer) 1127.0.0.1:6379> hset hash key2 value2(integer) 1127.0.0.1:6379> hset hash key1 value1(integer) 0127.0.0.1:6379> hgetall hash1) "key1"2) "value1"3) "key2"4) "value2"127.0.0.1:6379> hdel hash key2(integer) 1127.0.0.1:6379> hdel hash key2(integer) 0127.0.0.1:6379> hget hash key1"value1"127.0.0.1:6379> hgetall hash1) "key1"2) "value1"127.0.0.1:6379> hlen hash(integer) 1127.0.0.1:6379>
⑥Bit array(Bitmap)
字符位操作。
- SETBIT:设置位值。
- GETBIT:获取位值。
- BITCOUNT:返回位值为1的位数计数。
127.0.0.1:6379> set bitmap RedisOK127.0.0.1:6379> bitcount bitmap(integer) 19127.0.0.1:6379> getbit bitmap 1(integer) 1127.0.0.1:6379> setbit bitmap 1 0(integer) 1127.0.0.1:6379> bitcount bitmap(integer) 18127.0.0.1:6379>
⑦HyperLogLog(HLL)
元素基数(cardinality)计数。
- PFADD:给定元素添加到HLL。
- PFCOUNT:返回给定HLL的基数。
127.0.0.1:6379> pfadd hll a b c d(integer) 1127.0.0.1:6379> pfcount hll(integer) 4127.0.0.1:6379> pfadd hll e f g h(integer) 1127.0.0.1:6379> pfcount hll(integer) 8127.0.0.1:6379> pfadd hll a c k r z(integer) 1127.0.0.1:6379> pfcount hll(integer) 11127.0.0.1:6379>
参考:
https://redis.io/topics/data-types-intro
《Redis in Action》( https://book.douban.com/subject/10597898/ )
阅读全文
0 0
- 学习笔记:Redis数据结构
- 【学习笔记】Redis(1)-数据结构
- 《Redis源码学习笔记》数据结构-字典
- redis 数据结构笔记
- 《Redis设计与实现》学习笔记-基础数据结构
- redis学习笔记1--底层数据结构与对象
- Redis学习-数据结构
- redis源码分析(八)、redis数据结构之压缩ziplist--------ziplist.c ziplist.h学习笔记
- 【Redis笔记-2】Redis内部数据结构
- redis学习记录(三)-redis中的数据结构
- Redis学习(三)Redis的数据结构
- Redis学习(一)-数据结构
- [Redis][数据结构]sds的学习
- redis源码学习2 数据结构
- Redis学习笔记-Redis安装
- 【Redis学习笔记】Redis初识
- 【Redis学习笔记】Redis特性
- [Redis学习笔记]-Redis配置
- 线程案例锁的几种方法
- calcOpticalFlowPyrLK使用
- 浅谈TCP优化
- 【java学习笔记】集合类ArrayList
- 阿里云大鱼短信使用demo
- 学习笔记:Redis数据结构
- react迄今见过最好的教程
- VS2010打包文件,安装在C盘,无法更改配置文件的解决方法
- Laravel5.1 模型--查询作用域
- 宏晶微转换芯片MS9282:VGA转HDMI,YPbPr转HDMI,VGA转DVI,YPbPr转DVI芯片
- php中$this->
- 多线程相关,线程池,定时器
- Java8 Foreach操作
- particles.js