redis常用数据类型操作命令集锦
redis操作命令集锦
redis中五种数据类型
- 1) 字符串 String
特点: 存储所有的字符和字符串
应用场景: 做缓存使用 - 2) 哈希 hash
特点: 相当于java中hashMap集合
应用场景: 可以存储javaBean对象, 此种使用场景不多,可被String替代 - 3) list 集合
特点: 相当于java中linkList, 是一个链表的结构
应用场景: 做任务队列- 在java中客户端提供了线程安全获取集合数据的方式
- 4) set 集合
特点: 唯一, 无序
应用场景: 集合运算
例如去重复的操作 - 5) 有序set集合: sorted set
特点:唯一, 有序
应用场景: 一般用来做排行榜
redis中String类型相关命令
- 赋值: set key value
设定key持有指定的字符串value,如果该key存在则进行覆盖操作。总是返回”OK” - 取值: get key
获取key的value。如果与该key关联的value不是String类型,redis将返回错误信息,因为get命令只能用于获取String value;如果该key不存在,返回(nil) - 删除: del key [key ...]
删除指定的key,返回“(integer) n”,n表示成功删除的个数 - 数值增减:
增加值: incr key
将指定的key的value原子性的递增1.如果该key不存在,其初始值为0。如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息。
减少值: decr key
将指定的key的value原子性的递减1.如果该key不存在,其初始值为0。如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息- 增加指定的值: incrby key increment
将指定的key的value原子性增加increment,如果该key不存在,初始值为0。如果该值不能转成整型,如hello,则失败并返回错误信息 - 减少指定的值: decrby key decrement
将指定的key的value原子性减少decrement,如果该key不存在,初始值为0。如果该值不能转成整型,如hello,则失败并返回错误信息
- 增加指定的值: incrby key increment
- 拼接value值: append key value
拼接字符串。如果该key存在,则在原有的value后追加该值;如果该key不存在,则重新创建一个key将值设为value,返回“(integer) n”,n表示拼接后字符串长度
redis中hash类型的相关命令
- 赋值:
设置指定key的field的值:hset key field value,key为一个字符串,value类似于map,同样有一个field和value
设置指定key的多个field的值:hmset key field value [field value ...] - 取值:
获取指定key的field的值: hget key field
获取指定key的多个field值: hmget key field [field ...]
获取指定key中的所有的field的值: hgetall key - 删除:
hdel key field [field …] :可以删除一个或多个字段,返回“(integer) n”,n表示被成功删除的字段个数
del key :删除整个内容 - 增加数字:
hincrby key field increment :为某个key的某个integer属性增加值 - 判断某个key中的filed是否存在: hexists key field
返回0表示没有, 返回1表示有 - 获取key中所包含的field的数量: hlen key
- 获取所有的key: hkeys key
注意这里指的获取所有的map中的key - 获取所有的value: hvals key
注意这里指的获取所有的map中的value
redis中list集合的相关命令
redis的中的list集合类似于java中的双端队列, 支持向两端操作
- 添加:
从左侧添加: lpush key value [value ...]
在指定的key所关联的list的头部插入所有的values,如果该key不存在,该命令在插入的之前创建一个与该key关联的空链表,之后再向该链表的头部插入数据。插入成功,返回元素的个数。
从右侧添加: rpush key value [value ...]
在该list的尾部添加元素 - 查看列表 : lrange key start end
获取链表中从start到end的元素的值,start、end从0开始计数;也可为负数,若为-1则表示链表尾部的元素,-2则表示倒数第二个,以此类推 - 删除(弹出):
从左侧弹出:lpop key
返回并弹出指定的key关联的链表中的第一个元素,即头部元素。如果该key不存在,返回nil;若key存在,则返回链表的头部元素
从右侧弹出: rpop key
从尾部弹出元素 - 获取列表中元素的个数: llen key
返回指定的key关联的链表中的元素的数量 - 向指定的key插入数据, 仅在key存在时插入, 不存在则不执行
从左侧:lpushx key value
从右侧: rpushx key value - lrem key count value:
删除count个值为value的元素,如果count大于0,从头向尾遍历并删除count个值为value的元素,如果count小于0,则从尾向头遍历并删除。如果count等于0,则删除链表中所有等于value的元素 - lset key index value:
设置链表中的index的脚标的元素值,0代表链表的头元素,-1代表链表的尾元素。index不存在则抛异常。 - linsert key before|after pivot value
在第一个pivot元素前或者后插入value这个元素。 - rpoplpush resource destination
将链表中的尾部元素弹出并添加到头部。[循环操作]
redis中的set集合的相关命令操作
- 添加: sadd key member [member ...]
向set中添加数据,如果该key的值已有则不会重复添加,返回“(integer) n”,n表示成功添加的member个数 - 删除: srem key member [member ...]
删除set中指定的成员 - 获取所有的元素: smembers key
获取set中所有的成员(sdiff key) - 判断元素是否存在: sismember key member
判断参数中指定的成员是否在该set中,1表示存在,0表示不存在或者该key本身就不存在。(无论集合中有多少元素都可以极速的返回结果) - 集合的差集运算: sdiff key [key ...]
返回key1与key2中相差的成员,而且与key的顺序有关。即返回差集 - 集合的交集运算:sinter key [key ...]
返回交集, 两个key都有的 - 集合的并集运算:sunion key [key ...]
返回并集 - 获取set中成员的数量:
scard key - 随机返回set中的成员:
srandmember key [count] ,count表示要返回的不重复key的个数 - 将key1、key2相差的成员存储在destination上:
sdiffstore destination key [key ...] - 将返回的交集存储在destination上:
sinterstore destination key [key ...] - 将返回的并集存储在destination上:
sunionstore destination key [key ...]
redis中的sortedset集合的相关操作:
- 添加数据: zadd key score member [score member ...]
将所有成员以及该成员的分数存放到sorted-set中。如果该元素已经存在则会用新的分数替换原有的分数。返回值是新加入到集合中的元素个数,不包含之前已经存在的元素 - 获得元素:
zscore key member: 返回指定元素的值
zcard key: 获取集合中的成员数量 - 删除元素:zrem key member [member ...]
移除集合中指定的成员,可以指定多个成员。 - 范围查询:
zrange key start end [withscores]: 获取集合中脚标为start-end的成员,[withscores]参数表明返回的成员包含其分数
zrevrange key start stop [withscores]: 按照元素分数从大到小的顺序返回索引从start到stop之间的所有元素(包含两端的元素) - zremrangebyrank key start stop: 按照排名范围删除元素
- zremrangebyscore key min max: 按照分数范围删除元素
- zrangebyscore key min max [withscores] [limit offset count]:
返回分数在[min,max]的成员并按照分数从低到高排序。[withscores]:显示分数;[limit offset count]:offset,表明从脚标为offset的元素开始并返回count个成员a - zincrby key increment member:
设置指定成员的增加的分数。返回值是更改后的分数 - zcount key min max:
获取分数在[min,max]之间的成员 - zrank key member:
返回成员在集合中的排名。(从小到大) - zrevrank key member
返回成员在集合中的排名。(从大到小)
redis常用数据类型操作命令集锦的更多相关文章
- Redis常用数据类型介绍、使用场景及其操作命令
Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字 ...
- Redis常用数据类型
Redis常用数据类型 转载自:http://blog.sina.com.cn/s/blog_7f37ddde0101021q.html Redis最为常用的数据类型主要有以下五种: ●Str ...
- Redis常用数据类型及各种数据类型应用和实现方式
Redis常用数据类型: StringHashListSetSorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的: 首先Red ...
- Redis常用数据类型以及操作
Redis常用数据类型以及操作 目录 Redis常用数据类型以及操作 一.String数据类型 1. SET/GET/APPEND/STRLEN 2. INCR/DECR/INCRBY/DECRBY ...
- Redis常用数据类型和事物以及并发
Redis数据类型 基本类型(String int): 如 set key value .get key 等 所有命令都是按照 key value keys * 可以将全部数据列出,其中后面的 &qu ...
- Redis常用数据类型及其存储结构(源码篇)
一.SDS 1,SDS源码解读 sds (Simple Dynamic String),Simple的意思是简单,Dynamic即动态,意味着其具有动态增加空间的能力,扩容不需要使用者关心.Strin ...
- redis常用数据类型对应的数据结构
redis的数据类型都是通过多种数据结构来实现,主要是出于时间和空间的考虑,当数据量小的时候通过数组下标访问最快,占用内存最小[压缩列表是数组的变种,允许存储的数据大小不同] 因为数组需要占用连续的内 ...
- Redis常用数据类型及使用场景
Redis最为常用的数据类型 字符串(String) 字符串列表(list) 字符串集合(set) 哈希(hash) 有序的字符串集合(sorted set) String(字符串) 字符串是最基本的 ...
- redis之 Redis常用数据类型
Redis最为常用的数据类型主要有以下7种: 一. String (字符) 常用命令: set,get,decr,incr,mget 等. 应用场景:String是最常用的一种数据类型,普通的key ...
随机推荐
- windows&cmd常用命令&快捷键
1: cls即CLear Screen 功能:清除屏幕上的所有显示 2:Win+Tab快捷键进行3D窗口切换还有比较快速切换窗口的新方法. 3:利用Alt+Tab快捷键进行切换窗口时,在桌面中间会显示 ...
- linux邮件客户端mutt日志文件,发不出邮件
linux上面使用很方便的收发邮件客户端(即MUA),还有一个是mail,大家也可以试试. 在网上找了很多,都说需要msmtp配合使用,其实mutt里面也内建了smtp支持的. mutt and SM ...
- 为什么JS中0.1+0.2 != 0.3
为什么JS中0.1+0.2 != 0.3 在我曾经的一篇< javascript入门教程 (2) >中,讲到JS中数字运算时,我们提到过一个叫做 数字运算中的精度缺失的问题,当时我们只是简 ...
- Android App 注射&&Drozer Use
x01 准备工作 测试环境: 1) 手机root权限 2) Adb.exe 3) 手机usb连接开启debug模式(在设置>关于手机>连续点击多次版本号,即可开启开发者模式) 4) Win ...
- 关于options请求的一点理解
最近最项目改造,对所有的ajax请求统一做了一点处理,发现原来很正经的ajax请求突然不正常了,每个ajax之前都多了一个相应的method为options的请求.虽然之前知道ajax的请求中meth ...
- Eclipse 连接真实机器调试
一.手机开启调试模式 二.安装adb.exe 1.确信 \android-sdk-windows\tools\下有 adb.exe AdbWinApi.dll AdbWinUsbApi ...
- Java List详解,面试中应该如何解答关于List的问题
对于面试,我们在介绍Java的List的时候,一般需要介绍到,什么是List?List包括什么?各自在用法上有什么区别,在存储上有什么区别?List需要注意什么?把这些问题串起来,我们可以这样介绍: ...
- Extjs自定义验证介绍
表单验证实例(空验证,密码确认验证,email验证) 我们可以用单独的js写表单验证,但是extjs已经为我们想到了(自己单独写反而不方便). 在验证之前,我不得不提两个小知识点: //大家在很多的e ...
- coco定义的小物体中物体大物体的尺寸
http://cocodataset.org/#detection-leaderboard
- SpringBoot实战(十三)之缓存
什么是缓存? 引用下百度百科的解释: 缓存就是数据交换的缓冲区(又称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,找到了则直接执行,找不到的话则从内存中查找.由于缓存的运行速度 ...