前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis学习之redis基本数据类型前言:数据类型详解:

redis学习之redis基本数据类型前言:数据类型详解:

作者头像
贪挽懒月
发布2018-06-26 14:51:52
4520
发布2018-06-26 14:51:52
举报
文章被收录于专栏:JavaEEJavaEE

前言:

redis有5种基本数据类型,分别是String(字符串)Hash(字典)List(列表)Set(集合)Zset(有序集合),下面就分别来说一下这五种数据类型。

数据类型详解:

1、String:

二进制安全的数据类型,类似于Java中的Map,以key、value的形式存储数据。它有如下方法: ①、set和get方法:赋值和获取值 语法: set key value get key 例子: set username tom get username

②、del方法:删除指定的key 语法: del key 例子: del username

③、setnx方法:key不存在时进行设置,如果已有这个key就返回0 语法: setnx key value 例子: setnx age 22 如果有age这个key,就返回0,没有就进行设置

④、setex方法:设置有效期 语法: setex key 有效期 value 例子: setex color 10 red 设置color的有效期为10秒,10秒后color为nil

⑤、setrange方法:替换字符串 语法: set key 从第几位开始替换 要替换的字符 例子: set email 12356789@qq.com setrange email 9 gg 把qq替换成gg

⑥、mset和mget方法:一次设置或获取多个值 语法: mset key1 value1 key2 value2 mget key1 key2

⑦、incr和decr方法:对某个值进行递增或递减 语法: incr key decr key

⑧、incrby和decrby方法:可以设置步长的递增和递减 语法: incrby key 步长 decrby key 步长

⑨、append方法:追加字符串 语法: append key 追加的内容

⑩、strlen方法:获取字符串长度 语法: strlen key

2、Hash:

占用内存更少,方便存储对象。它有如下方法: ①、hset和hget方法: 语法: 官方:hset key field value 自己理解:hset hashname key value hget hashname key

②、hmset和hmget:批量操作 语法: hmset hashname key1 value1 key2 value2 hmget hashname key1 key2

③、hincrby和hdecrby:集合递增和递减 语法: hincrby hashname key 步长 hdecrby name key 步长

④、hexists:是否存在key,存在就返回1,不存在返回0 语法: hexists hashname key

⑤、hlen:返回集合中键的个数 语法: hlen hashname

⑥、hdel:删除指定的key 语法: hdel hashname key

⑦、hvals:返回指定hash里的所有value 语法: hvals hashname

⑧、hgetall:返回hash里所有的key、value 语法: hgetall hashname

3、List:

链表结构的集合,既可以做栈也可以做队列,它有如下方法: ①、lpush方法:从头部加入元素(栈),先进后出 语法: lpush key value 例子: lpush list1 "hello" lpush list1 "world"

②、lrange方法:取出list中的元素,从start取到end 语法: lrange key start end 例子: lrange list1 0 -1 表示从头取到尾

③、rpush方法:从尾部加入元素(队列),先进先出 语法: rpush key value 例子: rpush list1 "hello"

④、linsert方法:插入元素 语法: linsert key before value1 insertvalue 例子: linsert list1 before "world" "hello" 表示在world前插入一个hello

⑤、lset方法:将指定下标的元素换掉 语法: lset key 下标 "替换的内容" 例子: lset list1 0 "haha" 表示把索引为0的元素替换成haha

⑥、lrem方法:删除若干个元素,返回删除的个数 语法: lrem key 删除的个数 "删除的元素" 例子: lrem list1 2 "b" 删除两个b

⑦、ltrim方法:保留指定索引范围内的值 语法: ltrim key 索引1 索引2 例子: ltrim list1 2 4 表示保留索引2到4的内容

⑧、lpop方法:从list头部删除元素,并返回删除元素 语法: lpop key

⑨、rpop方法:从list尾部删除元素,并返回删除元素 语法: rpop key

⑩、rpoplpush方法:删除key1中最后一个元素,然后把这个元素加到key2的第一个位置(key1和key2可以相同) 语法: rpoplpush key1 key2

①①、lindex方法:返回list中指定索引的值 语法: lindex key 索引 例子: lindex list1 1 返回list1中第二个元素

①②llen方法:返回list中元素个数 语法: llen key

4、Set:

无序不重复集合,通过hashtable实现。有如下方法: ①、sadd方法:添加元素 语法: 官方:sadd key member 自己理解:sadd setname value 例子: sadd set1 haha

②、srem方法:删除set的元素 语法: srem setname value 例子: srem set1 haha

③、spop方法:指定一个set,随机删除其里面的元素并返回 语法: spop setname 例子: spop set1

④、sdiff方法:返回set1不同于set2的元素 语法: sdiff setname1 setname2

⑤、sdiffstore方法:将set1不同于set2的元素存到set3中去 语法: ```sdiffstore setname1 setname2 setname3``‘

⑥、sinter方法:求set1和set2的交集 语法: sinter setname1 setname2

⑦、sinterstore方法:把set1与set2的交集存到set3中 语法: sinter setname1 setname2 setname3

⑧、sunIon方法:求set1与set2的并集(I是大写的i) 语法: sunIon setname1 setname2

⑨、sunIonstore方法:把set1与set2的并集存入set3 语法: sunIonstore setname1 setname2 setname3

⑩、smove方法:将set1中的某个元素移动到set2中 语法: smove setname1 setname2 value 例子: smove set1 set2 ee 表示将set1中的ee移动到set2中

①①、scard方法:查看set里的元素个数 语法: scard setname

①②、sismember方法:判断某个元素是否为set中元素,是返回1,不是返回0 语法: sismember setname value 例子: sismember set1 haha 判断haha是不是set1中的元素

①③、srandmember方法:随机返回set中count个元素 语法: srandmember setname count 例子: srandmember set1 3 随机返回set1中3个元素

5、Zset:

和set的区别就是,Zset是有序的。它有如下方法: ①、zadd方法:添加元素,如果元素存在,就更新该元素顺序 语法: zadd zsetname score value 例子: zadd zset1 1 haha 表示添加haha这个元素,分数是1

②、zrem方法:删除zset中的元素 语法: zrem zsetname value 例子: zrem zset1 haha

③、zincrby和zdecrby方法:指定步长递增或递减 **语法: ** zincrby zsetname 步长 value zdecrby zsetname 步长 value

④、zrank方法:返回某个元素的排序索引(从小到大排序) 语法: zrank zsetname value 例子: zrank zset1 haha 返回haha在zset1中的序号

⑤、zrevrank方法:返回排序索引(从大到小) 语法: zrevrank zsetname value

⑥、zrangebyscore方法:查找分数在指定区间的数据并返回 语法: zrangebyscore zsetname score1 score2 withscores 例子: zrangebyscore zset1 1 4 withscores 返回分数在1到4之间的数据

⑦、zcard方法:返回zset中元素的个数 语法: zcard zsetname

⑧、zcount方法:返回zset中指定分数区间中元素的个数 语法: zcount zsetname score1 score2

⑧、zremrangebyrank:根据给定的索引区间删除数据 语法: zremrangebyrank zsetname index1 index2

⑨、zremrangebyscore:根据给定的分数区间删除元素 语法: zremrangebyscore zsetname score1 score2

总结:

redis有以上5大数据类型,每个类型都有若干的方法,学习时可以类比Java的集合进行学习。

以上内容属于个人学习笔记整理,如果错误,欢迎批评指正!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.05.18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • 数据类型详解:
    • 1、String:
      • 2、Hash:
        • 3、List:
          • 4、Set:
            • 5、Zset:
              • 总结:
                • 以上内容属于个人学习笔记整理,如果错误,欢迎批评指正!
            相关产品与服务
            云数据库 Redis
            腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档