IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis键值操作 -> 正文阅读

[大数据]Redis键值操作

目录

数据库操作:

key的操作:

Redis 数据类型:

String类型数据:

List数据类型:

Set数据类型:

ZSet数据类型:

Hash数据类型:

发布订阅:


数据库操作:

命令

说明

select

切换数据库,总共16个,默认选中索引为0的。

flushdb

删除当前db中所有数据。

flushall

删除所有db中的所有数据。

key的操作:

command key_name:key命令的基本语法。

命令

说明

keys pattern

查询相应的key,在redis里,允许使用正则表达式。

del key1 key2 ... Keyn

删除1个或多个键,返回真正删除的key的数量。

exists key

判断key是否存在,不存在返回0,存在返回1。

expire key 整型值

设置key的生命周期,以秒为单位。 redis中的key超过生命周期,redis会自动删除过期的key, redis 是一个单线程的程序但是他会有个守护进程。Quartz 类似 Cron 定是跑的守护线程。会定期删除过期的key。

expireat key timestamp

作用和expire类似,用于设置key的过期时间,不同的在于expireat接受的参数是unix时间戳。

pexpire key milliseconds

设置key的过期时间以毫秒计算。

pexpireat key milliseconds_tiemstamp

设置key的过期时间戳以毫秒计算。

persist key

把指定key置为永久有效,将带过期的键变为永不过期。

ttl key

查询key的生命周期,返回:秒数, 注意:对于 已过期的key/不存在的key,都返回-1,Redis2.8中,对于不存在的key,返回-2

pttl key

以毫秒为单位,返回key剩余的过期时间,注意:对于 已过期的key/不过期的key,都返回-1,Redis2.8中,对于不存在的key,返回-2

rename key newkey

给key赋一个新的key名。 注意:如果newkey已存在,则newkey的原值被覆盖。

renamenx key newkey

把key改名为newkey,发生修改返回1,未发生修改返回0。 注意: nx--> not exists,,即newkey不存在时,作改名动作。

move key db

将当前数据库的 key 移动到给定的数据库 db 当中, 注意: 一个redis进程,打开了不止一个数据库, 默认打开16个数据库,从0到15编号,如果想打开更多数据库,可以从配置文件修改。

randomkey

返回当前数据库中的随机key

type key

返回key存储的值的类型, 所对应的value是什么类型

scan cursor [match pattern] [count count]

用于迭代数据库中的数据库键: SCAN 命令是一个基于游标的迭代器,每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。 SCAN 返回一个包含两个元素的数组, 第一个元素是用于进行下一次迭代的新游标, 而第二个元素则是一个数组, 这个数组中包含了所有被迭代的元素。如果新游标返回 0 表示迭代已结束。 参数说明: cursor:游标。 partten:匹配的模式。 count:指定从数据集里返回多少元素,默认为10。 相关命令: sscan:用于迭代集合键中的元素。 hscan:用于迭代哈希键中的元素。 zscan:用于迭代有序集合键中的元素(包括元素成员和元素分值)。

Redis 数据类型:

数据类型

说明

String类型(字符串)

String是Redis最基本的类型,可以理解成与Memcached一模一样的类型,一个 key对应一个value,String类型的值最大能存储 512MB。

String类型是二进制安全的。意思是redis的String可以包含任何数据。比如jpg图片或者序列化的对象。

List类型(列表)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

Set类型(集合)

Redis 的Set是String类型的无序集合,集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

zset类型 (sorted set:有序集合)

Redis zset和se 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

zset的成员是唯一的,但分数(score)却可以重复。

Hash类型(哈希)

Redis hash 是一个键值(key=>value)对集合。

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

String类型数据:

命令

说明

set key value [ex] / [px] [nx] /[xx]

注意: 如果ex表示秒数,px表示毫秒数,ex、px同时写,以后面的有效期为准,如 set a 1 ex 100 px 9000, 实际有效期是9000毫秒。

nx: 表示key不存在时,执行操作。

xx: 表示key存在时,执行操作。

setnx key value

key 不存在时,为 key 设置指定的值。

get key

获取key的值。

mset key1 value1 key2 value2 .. keyN valueN

同时设置一个或多个key-value 对。

msetnx key1 value1 key2 value2 .. keyN valueN

所有给定key都不存在时,同时设置一个或多个 key-value 对。

mget key1 key2 ..keyn

获取多个key的值。

setex key timeout value

为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。

psetex key milliseconds value

创建key,并以以毫秒为单位设置key的生存时间。

strlen key

返回key所存储的字符串的长度。

append key value

把value追加到key的原值上。

setrange key offset value

把字符串的offset偏移字符,改成value.

注意: 如果偏移量>字符长度, 该字符自动补\x00

getrange key start stop

获取字符串中 [start, stop]范围的值, 对于字符串的下标,左数从0开始,右数从-1开始。

注意:

1: start>=length, 则返回空字符串。

2: stop>=length,则截取至字符结尾。

3: 如果start 所处位置在stop右边, 返回空字符串。

getset key newvalue

获取并返回旧值,设置新值。

incr key

指定的key的值加1,并返回加1后的值。

注意,不存在的key当成0,再incr操作,范围为64有符号。

incrby key number

key 中储存的数字加上指定的增量值。

incrbyfloat key floatnumber

为 key 中所储存的值加上指定的浮点数增量值。

decr key

key 中储存的数字值减一。

decrby key number

将 key 所储存的值减去指定的减量值。

setbit key offset value

设置offset对应二进制位上的值,返回该位上的旧值。

注意:如果offset过大,则会在中间填充0, offset最大大到多少,ffset最大2^32-1,可推出最大的的字符串为512M。

getbit key offset

获取值的二进制表示,对应位上的值(从左,从0编号)。

bitop operation destkey key1 [key2 ...]

对key1,key2..keyN作operation,并将结果保存到 destkey 上。

operation 可以是 AND 、 OR 、 NOT 、 XOR 亦或。

注意: 对于NOT操作, key不能多个。

List数据类型:

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

命令

说明

lpush key value1 [value2]

将一个或多个值插入到列表头部。

rpush key value1 [value2]

将一个或多个值插入到列表尾部。

lpushx key value

将一个值插入到已存在的列表头部。

rpushx key value

将一个值插入到已存在的列表尾部。

lrange key start stop

返回链表中[start ,stop]中的元素,规律: 左数从0开始,右数从-1开始。

rpop key

返回并删除链表尾元素 (弹出)。

lpop key

返回并删除链表头元素 (弹出)。

lrem key count value

从key链表中删除value值, 删除count的绝对值个value后结束,Count>0 从表头删除,Count<0 从表尾删除。

ltrim key start stop

剪切key对应的链接,切[start,stop]一段,并把该段重新赋给key,如果stop 小于start 直接清空该链表。

lindex key index

返回index索引上的值。

llen key

计算链接表的元素个数。

linsert key after|before search value

在key链表中寻找’search’,并在search值之前|之后,插入value。

注: 一旦找到一个search后,命令就结束了,因此不会插入多个value。

rpoplpush source dest

把source的尾部拿出,放在dest的头部,并返回该单元值,原子性的事务操作。两个操作 rpop lpush 一个事务。

brpop key timeout

移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

blpop key timeout

移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

brpopblpush source destination timeout

从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

Set数据类型:

Set是String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

命令

说明

sadd key value1 value2

往集合key中增加元素。

smembers key

返回集中中所有的元素。

scard key

返回集合中元素的个数。

sismember key value

判断value是否在key集合中,是返回1,否返回0。

smove source dest value

把source中的value删除,并添加到dest集合中。

srandmember key count

返回集合key中,随机的count个元素。

srem key value1 value2

删除集合中集为 value1 value2的元素,返回忽略不存在的元素后,真正删除掉的元素的个数。

spop key

返回并删除集合中key中1个随机元素,随机--体现了无序性。

sinter key1 key2 key3

求出key1 key2 key3 三个集合中的交集,并返回。

sinterstore dest key1 key2 key3

求出key1 key2 key3 三个集合中的交集,并赋给dest。

sunionstore dest key1 key2 key3

求出key1 key2 key3 三个集合中的并集,并赋给dest。

sunion key1 key2.. Keyn

求出key1 key2 keyn的并集,并返回。

sdiff key1 key2 key3

求出key1与key2 key3的差集。

SSCAN key cursor [MATCH pattern] [COUNT count]

迭代集合中的元素。

ZSet数据类型:

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员

命令

说明

zadd key score1 member1 [score2 member2]

向有序集合添加一个或多个成员,或者更新已存在成员的分数。

zcard key

获取有序集合的成员数。

zcount key min max

返回[min,max] 区间内元素的数量。

zscore key member

返回有序集中,成员的分数值。

zrank key member

查询member的排名(升续 0名开始)。

zrevrank key memeber

返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序。

zlexcount key min max

计算有序集合中指定字典区间内成员数量。

zrange key start stop [WITHSCORES]

把集合排序后,返回名次[start,stop]的元素, 默认是升续排列,Withscores 是把score也打印出来。

zrangebyscore key min max [WITHSCORES] [LIMIT]

通过分数返回有序集合指定区间内的成员。包含使用(

zrevrangebyscore key max min [WITHSCORES]

返回有序集中指定分数区间内的成员,分数从高到低排序。

zrangebylex key min max [LIMIT offset count]

通过字典区间返回有序集合的成员。

zrevrange key start stop [WITHSCORES]

返回有序集中指定区间内的成员,通过索引,分数从高到低。

zrem key value1 value2 ...

删除集合中的元素。

zremrangebyscore key min max

按照socre来删除元素,删除score在[min,max]之间的。

zremrangebyrank key start end

按排名删除元素,删除名次在[start,end]之间的。

zremrangebylex key min max

移除有序集合中给定的字典区间的所有成员。

zincrby key increment member

有序集合中对指定成员的分数加上增量 increment。

zinterstore destination numkeys key [key ...]

计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中。

zunionstore destination numkeys key [key ...]

计算给定的一个或多个有序集的并集,并存储在新的 key 中。

ZSCAN key cursor [MATCH pattern] [COUNT count]

迭代有序集合中的元素(包括元素成员和元素分值)。

Hash数据类型:

命令

说明

hset key field value

把key中 filed域的值设为value,注意:如果没有field域,直接添加,如果有,则覆盖原field域的值。

hget key field

返回key中field域的值。

hmset key field1 value1 [field2 value2 ... fieldn valuen]

设置field1->N 个域, 对应的值是value1->N.

hmget key filed1 filed2

返回key中field1 field2 fieldN域的值。

hsetnx key filed value

返回key中field1 field2 fieldN域的值。

hgetall key

返回key中,所有字段与其值。

hexists key filed

查看哈希表 key 中,指定的字段是否存在。如果存在,返回 1 。 如果不存在,返回 0 。

hdel key field [field ...]

删除一个或多个哈希表字段

hkeys key

返回key中所有的field。

hvals key

返回key中所有的value。

hlen key

获取hash表中字段的数量。

hincrby key field value

把key中的field域的值增长整型值value。

hincrbyfloat key field value

把key中的field域的值增长浮点值value。

HSCAN key cursor [MATCH pattern] [COUNT count]

迭代哈希表中的键值对。

发布订阅:

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

命令

说明

psubscribe pattern [pattern ...]

订阅一个或多个符合给定模式的频道。即批量。

pubsub subcommand [argument [argument ...]]

查看订阅与发布系统状态。

publish channel message

将信息发送到指定的频道。

punsubscribe [pattern [pattern ...]]

退订所有给定模式的频道。

subscribe channel [channel ...]

订阅给定的一个或多个频道的信息。

unsubscribe [channel [channel ...]]

指退订给定的频道。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-25 12:36:07  更:2021-10-25 12:37:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:33:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码