spring类型

1. 字符串类型:实际上可以是字符串(包括XML JSON),还有数字(整形 浮点数),二进制(图片 音频 视频),最大不能超过512MB

2. 设值命令:

set name lgs ex 10  //10秒后过期  px 10000 毫秒过期

setnx name lgs  //不存在键name时才能设置,返回1设置成功;存在的话失败0

set age 29    //存在键age时直接覆盖之前的键值,返回1成功

场景:如果有多客户同时执行setnx,只有一个能设置成功,可做分布式锁

获值命令:get age //存在则返回value, 不存在返回nil

批量设值:mset country china city beijing

批量获取:mget country city address //返回china  beigjin, address为nil

若没有mget命令,则要执行n次get命令,从而占用网络资源影响性能

使用mget=1次网络请求+redis内部n次查询,一次性返回所有查询结果

3. 计数:

incr age //必须为整数自加1,非整数返回错误,无age键从0自增返回1

decr age //整数age减1,非整数返回错误,无age键从0自减返回-1

incrby age 2 //整数age+2

decrby age 2//整数age -2

incrbyfloat age 1.1 //整数age+1.1

4. append追加指令:set name hello; append name world //追加后成helloworld

5. 字符串长度:set hello “世界”;strlen hello//结果6,每个中文占3个字节

6. 截取字符串:set name helloworld ; getrange name 2 4//返回 llo

hashmap类型

哈希hash是一个string类型的field和value的映射表,hash适合用于存储对象。

1. 命令  hset key field value

设值:hset user:1 name lgs         //成功返回1,失败返回0

取值:hget user:1 name              //返回lgs

删值:hdel user:1 age               //返回删除的个数

计算键对应的字段个数:

 hset user:1 name lgs; hset user:1 age 27;

hlen user:1               //返回2,user:1有两个属性值

批量设值:hmset user:2 name ll age 28 sex boy //返回OK

批量取值:hmget user:2 name age sex   //返回三行:ll 28 boy

判断field是否存在:hexists user:2 name //若存在返回1,不存在返回0

获取所有field: hkeys user:2            // 返回name age sex三个field

获取user:2所有value:hvals user:2     // 返回ll 28 boy

获取user:2所有field与value:hgetall user:2 //name age sex ll 28 boy值

增加1:

hincrby user:2 age 1      //age+1

hincrbyfloat user:2 age 2   //浮点型加2

list类型

1.先进后出lpush
127.0.0.1:6379> lpush name2 sunlin
(integer) 1
127.0.0.1:6379> lpush name2 dengqiang
(integer) 2
127.0.0.1:6379> lrange name2 0 -1
(1) "dengqiang"
(2) "sunlin"

2.根据索引替换值
127.0.0.1:6379> lset name2 0 aa
OK
127.0.0.1:6379> lrange name2 0 -1
(1) "aa"
(2) "sunlin"

3.先进先出rpush
127.0.0.1:6379> rpush name2 sunlin
(integer) 1
127.0.0.1:6379> rpush name2 dengqiang
(integer) 2
127.0.0.1:6379> lrange name2 0 -1
(1) "sunlin"
(2) "dengqiang"

4.lrem 删除n个指定的值
127.0.0.1:6379> lpush list2 one
(integer) 1
127.0.0.1:6379> lpush list2 two
(integer) 2
127.0.0.1:6379> lpush list2 three
(integer) 3
127.0.0.1:6379> lpush list2 one
(integer) 4
127.0.0.1:6379> lpush list2 one
(integer) 5
127.0.0.1:6379> lpush list2 one
(integer) 6
127.0.0.1:6379> lrange list2 0 -1
1) "one"
2) "one"
3) "one"
4) "three"
5) "two"
6) "one"
127.0.0.1:6379> lrem list2 3 one
(integer) 3
127.0.0.1:6379> lrange list2 0 -1
1) "three"
2) "two"
3) "one"

5.llen 查看集合的数量
127.0.0.1:6379> llen list1
(integer) 4

6.lindex 查看该索引的元素
127.0.0.1:6379> lindex list1 0
"two"

7.lpop 从头部删除元素
127.0.0.1:6379> lrange list1 0 -1
1) "two"
2) "one"
3) "3"
4) "2"
127.0.0.1:6379> lpop list1
"two"
127.0.0.1:6379> lrange list1 0 -1
1) "one"
2) "3"
3) "2"

8.rpop 从尾部删除元素
127.0.0.1:6379> lrange list1 0 -1
1) "one"
2) "3"
3) "2"
127.0.0.1:6379> rpop list1
"2"
127.0.0.1:6379> lrange list1 0 -1
1) "one"
2) "3"

9.rpoplpush 从原集合的尾部删除元素,并放到目标集合的头部
127.0.0.1:6379> lrange list1 0 -1
1) "one"
2) "3"
127.0.0.1:6379> lrange list2 0 -1
1) "one"
2) "three"
3) "two"
4) "one"
127.0.0.1:6379> rpoplpush list1 list2
"3"
127.0.0.1:6379> lrange list1 0 -1
1) "one"
127.0.0.1:6379> lrange list2 0 -1
1) "3"
2) "one"
3) "three"
4) "two"
5) "one"

10.ltrim list3 2 3 保留索引2-3的数据

set类型

1.sadd添加集合,smembers 集合名 遍历集合数据
127.0.0.1:6379> sadd set1 one
(integer) 1
127.0.0.1:6379> sadd set1 two
(integer) 1
127.0.0.1:6379> sadd set1 two
(integer) 0
127.0.0.1:6379> smembers set1
1) "two"
2) "one"

2.srem删除集合中的指定元素
127.0.0.1:6379> smembers set1
1) "aa"
2) "two"
3) "one"
127.0.0.1:6379> srem set1 aa
(integer) 1
127.0.0.1:6379> smembers set1
1) "two"
2) "one"

3.spop 从集合中随机删除元素
spop set1

4.sdiff 2个集合比较,并返回第一个集合的差集
127.0.0.1:6379> smembers set1
1) "two"
2) "one"
127.0.0.1:6379> smembers set2
1) "ghy"
2) "one"
127.0.0.1:6379> sdiff set1 set2
1) "two"

5.sdiffstore 2个集合比较,并返回第一个集合的差集保存进另一个集合中
127.0.0.1:6379> sdiffstore set3 set1 set2
(integer) 1
127.0.0.1:6379> smembers set3
1) "two"

6.sinter 2个集合比较,并返回第一个集合的交集
127.0.0.1:6379> smembers set1
1) "two"
2) "one"
127.0.0.1:6379> smembers set2
1) "ghy"
2) "one"
127.0.0.1:6379> sinter set1 set2
1) "one"

7.sinterstore 2个集合比较,并返回第一个集合的交集保存进另一个集合中
127.0.0.1:6379> smembers set1
1) "two"
2) "one"
127.0.0.1:6379> smembers set2
1) "ghy"
2) "one"
127.0.0.1:6379> sinterstore set5 set1 set2
(integer) 1
127.0.0.1:6379> smembers set5
1) "one"

8.sunion 2个集合比较,并返回两集合的并集
127.0.0.1:6379> smembers set1
1) "two"
2) "one"
127.0.0.1:6379> smembers set2
1) "ghy"
2) "one"
127.0.0.1:6379> sunion set1 set2
1) "two"
2) "one"
3) "ghy"

9.sunionstore 2个集合比较,并返回第一个集合的并集保存进另一个集合中
127.0.0.1:6379> smembers set1
1) "two"
2) "one"
127.0.0.1:6379> smembers set2
1) "ghy"
2) "one"
127.0.0.1:6379> sunionstore set9 set1 set2
(integer) 1
127.0.0.1:6379> smembers set9
1) "two"
2) "one"
3) "ghy"

10.smove 将set1的two元素移动到set2中
smove set1 set2 two

11.scard 查看set集合的集合数
scard set1

12.sismember 判断该元素是否在集合中
127.0.0.1:6379> smembers set1
1) "one"
127.0.0.1:6379> sismember set1 one
(integer) 1
127.0.0.1:6379> sismember set1 one22
(integer) 0

13.srandmember 随机在集合中取出一个元素
srandmember set2

zset有序集合

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "3"
127.0.0.1:6379> zrem zset1 two
(integer) 1
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "one"
2) "1"

3.zincrby 增加指定元素的索引数
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "one"
2) "1"
127.0.0.1:6379> zincrby zset1 2 one
"3"
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "one"
2) "3"

4.zrank 集合先升序排序后,再查询元素的索引
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "one"
2) "two"
127.0.0.1:6379> zrank set1 one
(integer) 0

5.zrevrank 集合先降序排序后,再查询元素的索引
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "one"
2) "two"
127.0.0.1:6379> zrevrank set1 two
(integer) 0

6.zrevrange 获得集合并降序排序
127.0.0.1:6379> zrevrange 获得集合 set1 0 -1
1) "two"
2) "one"

7.zrangebyscore 按照withscores的序号查询集合/从1开始
127.0.0.1:6379> zrange set1 0 -1 withscores的序号查询集合/从1开始
 1) "one"
 2) "1"
 3) "two"
 4) "2"
 5) "thee"
 6) "3"
 7) "sdg"
 8) "4"
 9) "weg"
10) "5"
127.0.0.1:6379> zrangebyscore set1 2 4 withscores
1) "two"
2) "2"
3) "thee"
4) "3"
5) "sdg"
6) "4"

8.zcount 返回指定下标的元素个数
127.0.0.1:6379> zcount set1 2 4
(integer) 3

9.zcard 返回集合所有元素个数
127.0.0.1:6379> zcard set1
(integer) 5

10.zremrangebyscore 删除指定范围下标的元素
127.0.0.1:6379> zrange set1 0 -1 withscores
 1) "one"
 2) "1"
 3) "two"
 4) "2"
 5) "thee"
 6) "3"
 7) "sdg"
 8) "4"
 9) "weg"
10) "5"
127.0.0.1:6379> zremrangebyscore set1 2 3
(integer) 2
127.0.0.1:6379> zrange set1 0 -1 withscores
1) "one"
2) "1"
3) "sdg"
4) "4"
5) "weg"
6) "5"

11.zremrangebyrank 删除指定范围索引的元素
127.0.0.1:6379> zrange set1 0 -1 withscores
1) "one"
2) "1"
3) "sdg"
4) "4"
5) "weg"
6) "5"
127.0.0.1:6379> zremrangebyrank set1 1 1
(integer) 1
127.0.0.1:6379> zrange set1 0 -1 withscores
1) "one"
2) "1"
3) "weg"
4) "5"

Redis中五中数据类型的实例相关推荐

  1. redis中各种数据类型对应的jedis操作命令

    2019独角兽企业重金招聘Python工程师标准>>> redis中各种数据类型对应的jedis操作命令 博客分类: 缓存 http://www.fwqtg.net/redis%E4 ...

  2. java获取redis中各种数据类型key对应的value代码简单封装

    来源:http://blog.csdn.net/russ44/article/details/52121180 目前在做自动化测试时,设计到需要获取存储在redis中的值,总结了操作代码如下: 需要j ...

  3. Redis中的数据类型及其应用场景

    redis中有哪些数据类型?这个问题我被面试官问过好多次了,下面总结下这5种数据类型的特点,命令,还有应用场景 redis客户端的一些通用命令: ping # 测试redis是否链接 如果已链接返回 ...

  4. redis中各种数据类型对应的jedis操作命令、redis命令大全

    一.常用数据类型简介: redis常用五种数据类型:string,hash,list,set,zset(sorted set). 1.String类型 String是最简单的类型,一个key对应一个v ...

  5. 基于Redis中 Zset数据类型实现各类高性能排行榜日榜、周榜(附上整合SpringBoot示例代码)

    目录 为什么要使用redis? 日榜.周榜实现方案介绍 热度增加代码参考 日榜获取 周榜获取 为什么要使用redis? 如果使用mysql 要实现排行榜功能,如果使用 mysql或其它关系型数据库 来 ...

  6. 面试官:Redis中集合数据类型的内部实现方式是什么?

    虽然已经是阳春三月,但骑着共享单车骑了这么远,还有有点冷的.我搓了搓的被冻的麻木的手,对着前台的小姐姐说:"您好,我是来面试的."小姐姐问:"您好,您叫什么名字?&quo ...

  7. php十六进制字符串转成字节数组_PHP中的数据类型及实例演示

    数据类型 1. 什么是类型 不同的数据类型其实就是所存储数据的不同种类. 整型(integer):用来存储整数. 浮点型(float):用来存储实数. 字符串型(string):用来存储字符串. 布尔 ...

  8. redis中Zset数据类型最全常用命令

    一.引言 今天晚上不加班,不加班,爽翻.不加班就能安安心心继续学习了,继续redis学习哈.今天学习redis五大数据类型最后一个了.上一章学习了Set无序集合,那么有无序集合肯定就会有有序集合了.Z ...

  9. Redis中List数据类型

    List 所有的list命令都是以l开头,Redis不区分大小写 lpush key value 将一个值插入到列表头部 rpush key value 直接将数据添加到列表末尾 lrange key ...

  10. Redis中Set数据类型常用命令了解

    命令 作用 Sadd 将一个或多个成员元素加入到集合中,集合中元素不允许重复 Scard 获取集合的成员数 Sdiff 返回给定集合之间的差集 Sunion 返回给定集合的并集 Srandmember ...

最新文章

  1. linux执行命令段错误,Linux运行fortran程序 出现段错误(segmentation fault)
  2. Java项目:房屋租赁管理系统(java+SSM+Layui+Maven+Mysql+Jsp)
  3. 雷观(十七):想拉人入伙,合伙创业,请拿出一点认真的态度
  4. fabric 简单理解
  5. numpy中的savez()同时保存数组、字符串、字典数据
  6. i7怎么老是显示无服务器,i7处理器真有这么差?网友:懂电脑的人都不买!
  7. java三级报名_java web 学习 --第四天(Java三级考试)
  8. centos下安装opencv
  9. ZOJ 3635 Cinema in Akiba[ 大规模阵列 ]
  10. 《C语言及程序设计》实践参考——转着圈加密
  11. Python 的lambda表达式的一些小细节
  12. ASP.NET Web API 入门 (API接口、寄宿方式、HttpClient调用)
  13. 如何裁剪、合并视频?
  14. 全卷积网络 FCN 详解(很好,详看)
  15. 冰点下载器手机版apk_冰点下载器手机版apk
  16. 自考c语言程序设计02600,自考02600《C语言程序设计》模拟试卷十一
  17. Ubuntu系统安装教程
  18. Android通讯录管理(获取联系人、通话记录、短信消息)(一)
  19. 最新最快的HTTP代理服务器,国内外HTTP代理服务器,游戏代理服务器,Q代理服务器,代理IP...
  20. 杭州好玩景点攻略470

热门文章

  1. 广东最美的历史古村落,再不去就没了
  2. php简历怎么写比较出彩,如何让简历出彩 简历吸引人有几个方面
  3. vc语言c1083错误,VC编程之VS error C1083: 无法打开包括文件:“gl\glew.h”: No such file or directory\...
  4. regedit.exe的命令行使用
  5. 设计一个小型的物联网应用系统_点赞 | 面向能源物联网的智能传感芯片设计与应用...
  6. 联想ThinkPad笔记本Fn键关闭与启用方法
  7. 通过for循环生成简单的座位表
  8. BUAA(2021春) 北京地铁乘坐线路查询——Dijkstra和Floyd双解法
  9. java程序员 thinkpad_JAVA程序员笔记本电脑推荐?
  10. python实用程序育儿法下载_Python高级编程