`

redis 数据类型string list hash set简介

 
阅读更多

 

 1 数据类型之 string类型:

 

字符串类型是redis中最基本的数据类型,它能存储任何形式的字符串,包含二进制数据,甚至是一张图片(二进制内容)。一个字符串类型的值存储的最大容量是1GB
命令

set/get
mset/mget
incr/decr/incrby/decrby/incrbyfloat
append
strlen


解释:

set/get 多次对同名的key执行set后 对应的值会被覆盖掉

mset/mget :同一命令行中对多个参数赋值和取值



incr/decr/incrby/decrby/incrbyfloat incr key :给对应的key的值增加1 decr key :给对应的key的值递减1 incrby key 5 : 给对应的key的值增加加5 decrby key 5 : 给对应的key的值增减减5 incrbyfloat key 1.01 : 给对应的key的值增加浮点数1.01 注意没有递减浮点操作 append key " world" 给key对应value后增加串 world strlen key 返回key对应的string类型值的长度

 

 

 

 

2 数据类型之 hash方式:

 

hash类型的值存储了字段和字段值的映射,字段值只能是字符串,不支持其他数据类型。

hash类型的键至多可以包含       2的32次方-1个字段。
hash类型适合存储对象:如图:

 

 



 

 

 

使用hash数据类型,redis可以为任何键增减字段而不影响其他键
命令
hset/hget/hmset/hmget/hgetall(hsetnx)
hexists,判断键中的属性是否存在
hincrby(hash类型没有hincr命令)
hdel
hkeys/hvals
hlen 

 

 

命令
hset/hget/hmset/hmget/hgetall(hsetnx)
hexists,判断键中的属性是否存在
hincrby(hash类型没有hincr命令)
hdel
hkeys/hvals
hlen


 

// 增加hash类型三个属性
127.0.0.1:6379> hset user:100 name zm
(integer) 1
127.0.0.1:6379> hset user:100 age 30
(integer) 1
127.0.0.1:6379> hset user:100 sex 1
(integer) 1
// 获取一个属性的值
127.0.0.1:6379> hget user:100 sex
"1"
// 同时获取多个属性的值
127.0.0.1:6379> hmget user:100 sex age
1) "1"
2) "30"
// 得到这个健下对应的所有属性和属性值
127.0.0.1:6379> hgetall user:100
1) "name"
2) "zm"
3) "age"
4) "30"
5) "sex"
6) "1"
// 判断属性是否存在
127.0.0.1:6379> hexists user:100 name
(integer) 1
// 得到所有属性
127.0.0.1:6379> hkeys user:100
1) "name"
2) "age"
3) "sex"
得到所有属性对应的数值
127.0.0.1:6379> hvals user:100
1) "zm"
2) "30"
3) "1"
// 删除属性age
127.0.0.1:6379> hdel user:100 age
(integer) 1
//  得到健下所有属性个数
127.0.0.1:6379> hlen user:100
(integer) 2

 

3 数据类型之list:

 

 

list是一个有序的字符串列表,列表内部实现是使用双向列表(linked list)实现的。
list还可以作为队列使用(后面讲)
一个列表类型的键最多能容纳 2的32次方-1      个元素。
命令
lpush/rpush/lpop/rpop
llen/lrange
lrem(lrem key count value)count分为三种情况
lindex/lset/ltrim/linsert
rpoplpush:将元素从一个列表转到另一个列表

lpush 向列表左侧插入数据
rpush 向列表右侧插入数据
lpush list 1
lpush list 2
rpush list 3
rpush list 4

lrange list 0 -1 查看list这个key内的所有数据

lpop 从左侧弹出并移除
rpop 从右侧弹出并移除


llen list 查询元素个数

lpush list 3 4 5 6 7 插入多条 中间用空格隔开

lrem list 2 3 从key为list的集合中 从左侧开始删除,删除2次值为3的数据

lrem list -2 3 从key为list的集合中 从右侧开始删除,删除2次值为3的数据

lrem list 0 3 从key为list的集合中 删除所有值为3的数据

lindex list 0 查询角标为0的数据

lset list 0 x 将集合list的第0个元素设置为x

ltrim list 0 2 将key名称为list的集合切割得到角标为0,1,2的三个元素

linsert list before d a 在元素d前面插入元素a

linsert list after d y  在元素d后面插入元素y

 

4 数据类型之set:

 

 

set集合中的数据都是不重复的,无序的,一个集合类型键可以存储至多 2的32次方-1 个字符串   
 
命令   
sadd/srem/smembers/sismember   
sdiff/sinter/sunion   
sdiffstore/sinterstore/sunionstore   
scard/srandmember/spop  


sadd set1 a

smembers set1  返回集合set1的所有元素

srem set1 a  删除集合set1的a元素

sismember set1 a  查看set1中是否有元素a

sadd set1 a b c
sadd set2 b c d

sdiff set1 set2  求集合之间的差集 以第一个参数集合作为判断标准
sinter set1 set2 求集合之间的交集
sunion set1 set2  求集合之间的并集 

sdiffstore setresult set1 set2 将集合set1 set2的差集结果存储在集合setresult中
sinterstore setresult1 set1 set2 将集合set1 set2的交集结果存储在集合setresult1中
sunionstore   setresult2 set1 set2  将集合set1 set2的并集结果存储在集合setresult2中
 
 
scard set1 返回集合个数
srandmember set1 2 每次随机从集合set1中获取2个元素
spop  set1  随机从set1中取出一个元素并移除

 

 

 

5 数据类型之sorted set:

 

 

有序集合,在集合类型的基础上为集合中的每个元素都关联了一个分数,这样可以很方便的获得分数最高的N个元素(topN)。



有序集合类型和列表类型的差异
相同点
(1)二者都是有序的
(2)二者都可以获得某一范围的元素
不同点
(1)列表类型是通过链表实现的,获取靠近两端的数据速度极快,当列表中元素增多后,访问中间的数据速度会很慢,所以它更加适合很少访问中间元素的应用
(2)有序集合类型是使用散列表和跳跃表(skip list)实现的,所以即使读取位于中间部分的数据速度也很快
(3)列表中不能简单的调整某个元素的位置,但是有序集合可以(通过更改这个元素的分值)
(4)有序集合要比列表类型更耗费内存




给每个元素设置分值,然后根据set元素的分值来排序,从而达到有序的目的。

 
给每个元素设置分值,然后根据set元素的分值来排序,从而达到有序的目的。

命令
zadd/zscore/zrange/zrevrange/zrangebyscore
zincrby/zcard/zcount/zrem/zremrangebyrank 根据集合中元素的排名来删除
zremrangebyscore 根据集合元素中分值范围来删除元素/zrank/zrevrank
zinterstore/zunionstore
扩展:+inf(正无穷)	-inf(负无穷)


zadd zset 20 a 向集合zset中插入元素a 分值为20
zadd zset 10 b 50 c 
zscore zset a 查看元素a的分值
zrange zset 0 1 获取zset中排名前两位的元素
zrange zset 0 -1 正序获取zset中所有的元素
zrange zset 0 -1 withscores 正序获取zset中所有的元素 并显示元素的分值
zrevrange zset 0 -1 倒序获取zset中所有的元素
zrangebyscore zset 10 20 返回包含分值在10和20区间的元素 【10,20】
zrangebyscore zset (10 20 返回包含分值在10和20区间的元素 (10,20】


zincrby zset 20 a  给集合zset的元素a在原基础上增长分值20
zcard zset 获取元素zset的个数
zcount zset 10 40 获取zset中分值在 【10,40】之间的个数
zrem zset a  删除元素a
zremrangebyscore zset 0 2 根据排名删除[0,2]三个数据
zrank zset a 返回a在集合zset中的排名
zrevrank zset a 返回a在集合zset中的倒叙的排名
zinterstore zsetersult 2 set set2 对set set2两个集合交集结果存储在集合zsetersult内 可以继续设置参数 来讲两个集合中共同元素的权值做计算和选择

zunionstore 并集结果存储在集合
 
  • 大小: 17.5 KB
分享到:
评论

相关推荐

    Redis 数据类型String Hash list set使用场景

    String类型使用场景 计数器 例如一篇文章有多少人看过使用 INCR article:readcount:文章id 取值为GET article:readcount:文章id hash类型使用场景 电商的购物车 hset cart:用户id 商品id 商品数量 增加同样商品的...

    Redis学习资料

    Redis学习手册 Set数据类型 doc Redis学习手册 Sorted Sets数据类型 doc Redis学习手册 String数据类型 doc Redis学习手册 主从复制 doc Redis学习手册 事务 doc Redis学习资料 rar redis讲义 doc">redis 2 8 13 tar...

    redis数据类型指令整理

    Redis数据类型以及指令整理, 1. string 2. list 3. SET集合 4. sorted set 5. hash

    Redis数据类型.docx

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

    redis数据类型及应用场景知识点总结

    Redis支持5种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 一、string 简介:Strings数据类型是最常用、简单的key-value类型,普通的key/ value 存储都可以...

    Python操作redis实例小结【String、Hash、List、Set等】

    主要介绍了Python操作redis的常见方法,结合实例形式总结分析了Python redis操作中String、Hash、List、Set等相关操作函数与使用技巧,需要的朋友可以参考下

    Redis支持的数据类型、相关命令和功能

    本文主要讲述:Redis所支持的数据类型、key、string、list、set、hash的相关命令,以及它的持久化、主从复制和事务。

    Redis 数据类型

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 String(字符串) string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型...

    Redis 数据类型的详解

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个...

    详解Redis 数据类型

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 String(字符串) string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,...

    C#操作Redis明细内容 C#调用redis c#使用redis业务 C# Redis操作类 C#中Redis封装的类 C#

    3)支持多种数据类型,常见的如 string、list、hash、set、zset、bitmaps、hyperloglog、geo 4)应用场景广泛:常作为缓存使用,分布式锁、数据共享等 Redis 支持的数据类型有哪些?1)String(字符类型) 2)Hash...

    redis迁移到redis

    redis迁移到redis,支持string、list、set、hash;支持主从、支持集群版;支持制定库迁移,已经测试验证。如有问题欢迎留言指出可以定向优化

    redis可视化工具、免费.中文

    Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 性能极高 – Redis能读的速度是110000次/s,写的速度是81000...

    Redis各个数据类型的使用场景.pdf

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。每种数据类型的使用场景各不相同

    redis.zip安装与配置及其他功能

    Redis安装与配置,Redis常用命令-string-hash,Redis常用命令-list-set-zset,Redis其它功能

    redis学习笔记

    因为它的 value 不仅包括基本的 string 类型还有 list,set ,sorted set 和 hash 类型。当 然这些类型的元素也都是 string 类型。也就是说 list,set 这些集合类型也只能包含 string 类型。你可以在这些类型上做很多...

    Redis非关系型数据库笔记-数据持久化-主从同步-缓存-笔记-五大数据类型-三大特殊数据类型

    数据类型丰富:Redis支持多种数据类型,如字符串(string)、散列(hash)、列表(list)、集合(set)和有序集合(sorted set)等。这使得Redis能够灵活地应对不同的应用场景。 速度极快:Redis的速度非常快,每秒...

    windows-redis_5.0.14.1

    新增加的Stream(流)数据类型,这样redis就有了6大数据类型,另外五种是String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set有序集合)。它弥补了其它5种数据类型不能实现的功能,比如List...

    Net调用Redis缓存示例

    ServiceStack.Redis操作Redis内容,包括存取String、Hash、List、Set、ZSet.

Global site tag (gtag.js) - Google Analytics