redis的常用指令及操作之一

一、      Redis中常用的与数据库有关的指令

说明 :  使用redis的默认配置器动redis服务后,默认会存在16个库,编号从0-15

可以使用select 库的编号 来选择一个redis的库

  1. 清空当前的库   FLUSHDB
  2. 清空全部的库   FLUSHALL
  3. 1.        DEL

二、      Redis中常用的与key相关的指令

语法 :  DEL key [key ...]

作用 :  删除给定的一个或多个key 。不存在的key 会被忽略。

可用版本: >= 1.0.0

时间复杂度:

O(N),N 为被删除的key 的数量。

删除单个字符串类型的key ,时间复杂度为O(1)。

删除单个列表、集合、有序集合或哈希表类型的key ,时间复杂度为O(M),M为以上数据结构内的元素数量。

返回值: 被删除key 的数量。

  1. 2.        EXISTS

语法:  EXISTS key

作用:  检查给定key 是否存在。

可用版本: >= 1.0.0

时间复杂度: O(1)

返回值: 若key 存在,返回1 ,否则返回0 。

  1. 3.        EXPIRE

语法:  EXPIRE key seconds

作用:  为给定key 设置生存时间,当key 过期时(生存时间为0 ),它会被自动删除。

在Redis 中,带有生存时间的key 被称为『易失的』(volatile)。生存时间可以通过使用DEL 命令来删除整个key 来移除,或者被SET 和GETSET 命令覆写(overwrite),

这意味着,如果一个命令只是修改(alter) 一个带生存时间的key 的值而不是用一个新的key 值来代替(replace) 它的话,那么生存时间不会被改变。

比如说,对一个key 执行INCR 命令,对一个列表进行LPUSH 命令,或者对一个哈希表执行HSET 命令,这类操作都不会修改key 本身的生存时间。

另一方面,如果使用RENAME 对一个key 进行改名,那么改名后的key 的生存时间和改名前一样。RENAME 命令的另一种可能是,尝试将一个带生存时间的key 改名成另一个带生存时间的another_key这时旧的another_key (以及它的生存时间) 会被删除,然后旧的key 会改名为another_key ,因此,新的another_key 的生存时间也和原本的key 一样。使用PERSIST 命令可以在不删除key 的情况下,移除key 的生存时间,让key 重新成为一个『持久的』(persistent) key 。更新生存时间可以对一个已经带有生存时间的key 执行EXPIRE 命令,新指定的生存时间会取代旧的生存时间。过期时间的精确度在Redis 2.4 版本中,过期时间的延迟在1 秒钟之内——也即是,就算key 已经过期,但它还是可能在过期之后一秒钟之内被访问到,而在新的Redis 2.6 版本中,延迟被降低到1 毫秒之内。Redis 2.1.3 之前的不同之处

在Redis 2.1.3 之前的版本中,修改一个带有生存时间的key 会导致整个key 被删除,这一行为是受当时复制(replication) 层的限制而作出的,现在这一限制已经被修复。

可用版本: >= 1.0.0

时间复杂度: O(1)

返回值:设置成功返回1 。

  1. 4.        KEYS

语法 :  KEYS pattern

作用 :  查找所有符合给定模式pattern 的key 。

KEYS * 匹配数据库中所有key 。

KEYS h?llo 匹配hello ,hallo 和hxllo 等。

KEYS h*llo 匹配hllo 和heeeeello 等。

KEYS h[ae]llo 匹配hello 和hallo ,但不匹配hillo 。

特殊符号用 \ 隔开

注意:  KEYS 的速度非常快,但在一个大的数据库中使用它仍然可能造成性能问题,如果你需要从一个数据集中查找特定的key ,你最好还是用Redis 的集合结构(set) 来代替。

可用版本: >= 1.0.0

时间复杂度: O(N),N 为数据库中key 的数量。

返回值: 符合给定模式的key 列表。

 

  1. 5.        MOVE

语法 :  MOVE key db

作用 :  将当前数据库的key 移动到给定的数据库db 当中。

如果当前数据库(源数据库) 和给定数据库(目标数据库) 有相同名字的给定key ,或者key 不存在于当前数据库,那么MOVE 没有任何效果。因此,也可以利用这一特性,将MOVE 当作锁(locking) 原语(primitive)。

可用版本: >= 1.0.0

时间复杂度: O(1)

返回值: 移动成功返回1 ,失败则返回0 。

  1. 6.        PEXPIRE

语法 :  PEXPIRE key milliseconds

作用 :  这个命令和EXPIRE 命令的作用类似,但是它以毫秒为单位设置key 的生存时间,而不像EXPIRE 命令那样,以秒为单位。

可用版本: >= 2.6.0

时间复杂度: O(1)

返回值:设置成功,返回1  key 不存在或设置失败,返回0

  1. 7.        TTL

语法 :   TTL key

作用 :   以秒为单位,返回给定key 的剩余生存时间(TTL, time to live)。

可用版本: >= 1.0.0

时间复杂度: O(1)

返回值:

当key 不存在时,返回-2 。

当key 存在但没有设置剩余生存时间时,返回-1 。

否则,以秒为单位,返回key 的剩余生存时间。

Note : 在Redis 2.8 以前,当key 不存在,或者key 没有设置剩余生存时间时,命令都返回-1 。

  1. 8.        PTTL

语法 :  PTTL key

作用 :  这个命令类似于TTL 命令,但它以毫秒为单位返回key 的剩余生存时间,而不是像TTL 命令那样,以秒为单位。

可用版本: >= 2.6.0

复杂度: O(1)

返回值: 当key 不存在时,返回-2 。当key 存在但没有设置剩余生存时间时,返回-1 。

否则,以毫秒为单位,返回key 的剩余生存时间。

注意 : 在Redis 2.8 以前,当key 不存在,或者key 没有设置剩余生存时间时,命令都返回-1 。

  1. 9.        RANDOMKEY

语法 :  RANDOMKEY

作用 :  从当前数据库中随机返回(不删除) 一个key 。

可用版本: >= 1.0.0

时间复杂度: O(1)

返回值:当数据库不为空时,返回一个key 。当数据库为空时,返回nil 。

  1. 10.     RENAME

语法 :  RENAME key newkey

作用 :  将key 改名为newkey 。当key 和newkey 相同,或者key 不存在时,返回一个错误。当newkey 已经存在时,RENAME 命令将覆盖旧值。

可用版本: >= 1.0.0

时间复杂度: O(1)

返回值: 改名成功时提示OK ,失败时候返回一个错误。

  1. 11.     TYPE

语法 :  TYPE key

作用 :  返回key 所储存的值的类型。

可用版本: >= 1.0.0

时间复杂度: O(1)

返回值:

none (key 不存在)

string (字符串)

list (列表)

set (集合)

zset (有序集)

hash (哈希表)

三、      Redis的String类型的操作


命令


说明


set


设置一个key/value


get


根据key获得对应的value


mset


一次设置多个key value


mget


一次获得多个key的value


getset


获得原始key的值,同时设置新值


strlen


获得对应key存储value的长度


append


为对应key的value追加内容


getrange


截取value的内容


setex


设置一个key存活的有效期(秒)


psetex


设置一个key存活的有效期(豪秒)


setnx


存在不做任何操作,不存在添加


msetnx


可以同时设置多个key,只要有一个存在都不保存


decr
(不存在则创建)


进行数值类型的-1操作


Decrby
 (不存在则创建)


根据提供的数据进行减法操作


Incr
(不存在则创建)


进行数值类型的+1操作


incrby
(不存在则创建)


根据提供的数据进行加法操作


Incrbyfloat
(保留17位)


根据提供的数据加入浮点数


四、      Redis的List类型的操作

  1. 1.       
    图示
  1. 2.       
    命令

命令


说明


lpush


将某个值加入到一个key列表头部


lpushx


同lpush,但是必须要保证这个key存在


rpush


将某个值加入到一个key列表末尾


rpushx


同rpush,但是必须要保证这个key存在


lpop


返回和移除列表的第一个元素


rpop


返回和移除列表的最后一个元素


lrange


获取某一个下标区间内的元素


llen


获取列表元素个数


lset


设置某一个指定索引的值(索引必须存在)


lindex


获取某一个指定索引位置的元素


lrem


删除重复元素


ltrim


保留列表中特定区间内的元素


linsert


在某一个元素之前,之后插入新元素


五、      Redis的SET类型的操作

  1. 1.       
    图示
  1. 2.       
    命令

命令


说明


sadd


为集合添加元素


smembers


显示集合中所有元素 无序


scard


返回集合中元素的个数


spop


随机删除一个元素


smove


从一个集合中向另一个集合移动元素


srem


从集合中删除一个元素


sismember


判断一个集合中是否含有这个元素


srandmember


随机返回元素


sdiff


筛选出第一个集合中其它集合含有的相同元素,保留剩下的元素


sinter


求交集(同时拥有的元素)


sunion


求并集(和)


六、      Redis的ZSET类型的操作

  1. 1.       
    图示
  1. 2.       
    命令

命令


说明


zadd


添加一个有序集合元素


zcard


返回集合的元素个数


zrange


返回一个范围内的元素


zrangebyscore


按照分数查找一个范围内的元素


zrank


返回排名


zrevrank


倒序排名


zscore


显示某一个元素的分数


zrem


移除某一个元素


zincrby


给某个特定元素加分


七、      Redis的HASH类型的操作

  1. 1.       
    图示
  1. 2.       
    命令

命令


说明


hset


设置一个key/value对


hget


获得一个key对应的value


hgetall


获得所有的key/value对


hdel


删除某一个key/value对


hexists


判断一个key是否存在


hkeys


获得所有的key


hvals


获得所有的value


hmset


设置多个key/value


hmget


获得多个key的value


hsetnx


设置一个不存在的key的值


hincrby


为value进行加法运算


hincrbyfloat


为value加入浮点值

原文地址:https://www.cnblogs.com/Consola/p/11903480.html

时间: 2024-10-08 14:50:02

redis的常用指令及操作之一的相关文章

大白话说GIT常用操作,常用指令git操作大全

列一下在开发中用的比较多的git指令 git clone https://github.com/chineseLiao/Small-career // 克隆远程仓库到本地 git add . // 把修改的文件全选 git commit -m "这里是一些描述信息" // 把修改的提交到本地并添加描述 git pull // 拉取远程的代码 git push // 推送到远程 强制拉取,即覆盖本地修改,只用远程代码,使用下边指令集git fetch --all // 拉取仓库最新修改,

linux 常用指令 文件操作trick等

截取文件中的几行 1. 截取前5行: head -5 filename filename是你要截取的文件名,不在当前目录下要加路径的. 2.截取后5行: tail -5 filename 3.截取5-10行,并重新输入到另一个文件中 sed -n '5,10p' filename > another_filename vi中如何跳转到指定行数 输入:n,代表跳转到第n行,如:79,就跳转到第79行. 原文地址:https://www.cnblogs.com/shona/p/12238626.ht

Redis中Key相关的常用指令详解

Redis是一个开源的使用ANSI C 语言编写.支持网络.同memcache相比在Redis下可以实现基于内存亦可持久化的日志型.Key-Value 类型的NoSQL数据库,且在Redis中Key的类型也更为丰富.所以较为广泛的在生产环境中使用,在这里就说一说Redis中Key相关的常用指令. 首先,先要说明下在Redis下Key,Redis的key是字符串类型,但是key 中不能包括边界字符(""),由于key 不是binary safe的字符串,所以像"my key&q

Redis数据类型:Sorted Sets操作指令

Redis数据类型:Sorted Sets操作指令 Sorted Sets常用操作指令 Sorted Sets,本质是一个有序的Sets,其实在原来的Sets集合中对每一个元素新增了一个属性Score,用于排序. ZADD 将指定的元素及Score添加到集合.如果集合中存在该元素,则更新其Score. 如果集合不存在,会先创建一个集合然后在添加元素及Score. 127.0.0.1:6379> ZADD sortset 1 name (integer) 1 ZRANGE 返回指定下标开始到结束下

Jedis对Redis的常用命令操作

本篇主要总结一些Jedis对Redis的常用命令操作: 1.对key操作命令 2.对String操作命令 3.对List操作命令 4.对Set操作命令 5.对Hash操作命令 6.排序操作指令 一.项目中添加redis和junit的依赖. <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</ver

【Mysql】常用指令之——用户操作(创建,授权,修改,删除)

Mysql中的用户 user 每一个user都对应了不同的用户地址和权限 创建Mysql用户共有三种方式1.create user 2.grant 3.操作mysql.user表 1.CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 例子: CREATE USER 'aa'@'localhost' IDENTIFIED BY '123456'; CREATE USER 'aa'@'192.168.1.101_' IDENDIFIED

Linux基础(03)、常用基础指令和操作

目录 一.什么是Linux 二.常用基础指令 2.1.vi编辑 2.2.Linux文件类型 2.3.常用指令:增.删.改.查.其他 三.Linux的目录和权限 3.1.目录 3.2.权限 3.3.修改权限 一.什么是Linux Linux是操作系统:Windos.Mac.Linux.Unix\ Linux的划分 Ubuntu //教育 Centos //服务器端 Deepin Suse 红旗 使用Linux的原因 稳定.安全(开发人员.权限控制.开源).免费.省资源 虚拟机 Window:VMw

redis的常用操作

redis的介绍: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis

Dockerfile常用指令详解&镜像缓存特性

Dockerfile简介 Dockerfile 是Docker中用于定义镜像自动化构建流程的配置文件.在Dockerfile中,包含了构建镜像过程中需要执行的命令和其他操作.通过Dockerfile可以更加清晰,明确的给定Docker镜像的制作过程,由于仅是简单,小体积的文件,在网络等介质中传递的速度快,能够更快的实现容器迁移和集群部署.Dockerfile是一个文本文件,其内包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. 相对于提交容器修改在进行镜像迁