Redis中五中数据类型的实例
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) 46.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 set14.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 two11.scard 查看set集合的集合数
scard set112.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) 013.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) 05.zrevrank 集合先降序排序后,再查询元素的索引
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "one"
2) "two"
127.0.0.1:6379> zrevrank set1 two
(integer) 06.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) 39.zcard 返回集合所有元素个数
127.0.0.1:6379> zcard set1
(integer) 510.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中五中数据类型的实例相关推荐
- redis中各种数据类型对应的jedis操作命令
2019独角兽企业重金招聘Python工程师标准>>> redis中各种数据类型对应的jedis操作命令 博客分类: 缓存 http://www.fwqtg.net/redis%E4 ...
- java获取redis中各种数据类型key对应的value代码简单封装
来源:http://blog.csdn.net/russ44/article/details/52121180 目前在做自动化测试时,设计到需要获取存储在redis中的值,总结了操作代码如下: 需要j ...
- Redis中的数据类型及其应用场景
redis中有哪些数据类型?这个问题我被面试官问过好多次了,下面总结下这5种数据类型的特点,命令,还有应用场景 redis客户端的一些通用命令: ping # 测试redis是否链接 如果已链接返回 ...
- redis中各种数据类型对应的jedis操作命令、redis命令大全
一.常用数据类型简介: redis常用五种数据类型:string,hash,list,set,zset(sorted set). 1.String类型 String是最简单的类型,一个key对应一个v ...
- 基于Redis中 Zset数据类型实现各类高性能排行榜日榜、周榜(附上整合SpringBoot示例代码)
目录 为什么要使用redis? 日榜.周榜实现方案介绍 热度增加代码参考 日榜获取 周榜获取 为什么要使用redis? 如果使用mysql 要实现排行榜功能,如果使用 mysql或其它关系型数据库 来 ...
- 面试官:Redis中集合数据类型的内部实现方式是什么?
虽然已经是阳春三月,但骑着共享单车骑了这么远,还有有点冷的.我搓了搓的被冻的麻木的手,对着前台的小姐姐说:"您好,我是来面试的."小姐姐问:"您好,您叫什么名字?&quo ...
- php十六进制字符串转成字节数组_PHP中的数据类型及实例演示
数据类型 1. 什么是类型 不同的数据类型其实就是所存储数据的不同种类. 整型(integer):用来存储整数. 浮点型(float):用来存储实数. 字符串型(string):用来存储字符串. 布尔 ...
- redis中Zset数据类型最全常用命令
一.引言 今天晚上不加班,不加班,爽翻.不加班就能安安心心继续学习了,继续redis学习哈.今天学习redis五大数据类型最后一个了.上一章学习了Set无序集合,那么有无序集合肯定就会有有序集合了.Z ...
- Redis中List数据类型
List 所有的list命令都是以l开头,Redis不区分大小写 lpush key value 将一个值插入到列表头部 rpush key value 直接将数据添加到列表末尾 lrange key ...
- Redis中Set数据类型常用命令了解
命令 作用 Sadd 将一个或多个成员元素加入到集合中,集合中元素不允许重复 Scard 获取集合的成员数 Sdiff 返回给定集合之间的差集 Sunion 返回给定集合的并集 Srandmember ...
最新文章
- linux执行命令段错误,Linux运行fortran程序 出现段错误(segmentation fault)
- Java项目:房屋租赁管理系统(java+SSM+Layui+Maven+Mysql+Jsp)
- 雷观(十七):想拉人入伙,合伙创业,请拿出一点认真的态度
- fabric 简单理解
- numpy中的savez()同时保存数组、字符串、字典数据
- i7怎么老是显示无服务器,i7处理器真有这么差?网友:懂电脑的人都不买!
- java三级报名_java web 学习 --第四天(Java三级考试)
- centos下安装opencv
- ZOJ 3635 Cinema in Akiba[ 大规模阵列 ]
- 《C语言及程序设计》实践参考——转着圈加密
- Python 的lambda表达式的一些小细节
- ASP.NET Web API 入门 (API接口、寄宿方式、HttpClient调用)
- 如何裁剪、合并视频?
- 全卷积网络 FCN 详解(很好,详看)
- 冰点下载器手机版apk_冰点下载器手机版apk
- 自考c语言程序设计02600,自考02600《C语言程序设计》模拟试卷十一
- Ubuntu系统安装教程
- Android通讯录管理(获取联系人、通话记录、短信消息)(一)
- 最新最快的HTTP代理服务器,国内外HTTP代理服务器,游戏代理服务器,Q代理服务器,代理IP...
- 杭州好玩景点攻略470
热门文章
- 广东最美的历史古村落,再不去就没了
- php简历怎么写比较出彩,如何让简历出彩 简历吸引人有几个方面
- vc语言c1083错误,VC编程之VS error C1083: 无法打开包括文件:“gl\glew.h”: No such file or directory\...
- regedit.exe的命令行使用
- 设计一个小型的物联网应用系统_点赞 | 面向能源物联网的智能传感芯片设计与应用...
- 联想ThinkPad笔记本Fn键关闭与启用方法
- 通过for循环生成简单的座位表
- BUAA(2021春) 北京地铁乘坐线路查询——Dijkstra和Floyd双解法
- java程序员 thinkpad_JAVA程序员笔记本电脑推荐?
- python实用程序育儿法下载_Python高级编程