redis 通用API

keys * 遍历所有key 一般不在生产环境中使用 redis单线程,容易阻塞其他命令执行 O(n)

dbsize 计算key的总数 O(1)
exists 检查key是否存在 O(1)
del key 删除指定key-value O(1)
expire key seconds key在second秒后过期 O(1)
ttl key 查看key剩余的过期时间 O(1)
persist key 去掉key的过期时间 O(1)
type key 返回key的类型(string hash list set zset none)O(1)

字符串:
键值结构:value可以存字符串 二进制  key -value
场景:缓存 计数器 分布式锁

get key 获取key对应的value O(1)
set key value 设置key-value O(1)
del key 删除key-value O(1)
incr key key自增1,如果key不存在,自增后get(key)=1
decr key key自减1,如果key不存在,自减后get(key)=-1
incrby key k key自增k,如果key不存在,自增后get(key)=k
decrby key k key自减k,如果key不存在,自减后get(key)=-k
set key value 不管key是否存在,都设置 o(1)
setnx key value key 不存在,才设置 o(1)
set key value xx key存在 才设置o(1)
mget key1 key2 key3... 批量获取key,原子操作 o(n)
mset key1 value1 key2 value2 key3 value3 批量设置key-value o(n)
getset key newvalue #set key new value并返回旧的value o(1)
append key value #将value追加到旧的value o(1)
strlen key #返回字符串的长度(注意中文)
incrbyfloat key 3.5 #增加key对应的值3.5
getrange key start end #获取字符串指定下标所有的值
setrange key index value #设置指定下标所有对应的值

hash哈希:

哈希键值结构为key - field(属性) value(属性值) field不能相同 value 可以相同

hget key field #获取hash key 对应的field的value o(1)
hset key field value # 设置hash key 对应field的value o(1)
hdel key field 删除hash key 对应field的value o(1)
hexists key field #判断hash key 是否有field o(1)
hlen key #获取hash key field的数量 o(1)
hmget key field field2... fieldN #批量获取hash key的一批field对应的值 o(n)
hmset key field1 value1 field2 value2.... fieldN valueN #批量设置hash key的一批field value o(n)
hgetall key #返回hash key 对应所有的field和value o(n)
hvals key #返回hash key对应所有field的value o(n)
hkeys key #返回hash key 对应所有field o(n)

list列表:

特性:有序 可以重复 左右两边插入弹出
数据结构:key elements
rpush key value1 value2... valueN o(1~n)
#从列表右端插入值(1到N个)
lpush key value1 value2... valueN o(1~n)
#从列表左端插入值(1到N个)
linsert key before|after value newValue o(n) #在list指定的值前|后插入newValue
lpop key #从列表左侧弹出一个item o(1)
rpop key #从列表右侧弹出一个item o(1)
lrem key count value #根据count值,从列表中删除所有value相等的项 o(n)(n)
(1)count>0,从左到右,删除最多count个value相等的项
(2)count<0,从右到左,删除最多Math.abs(count)个value相等的项
(3)count=0,删除所有value相等的项
ltrim key start end #按照索引范围修建列表 o(n)
lrange key start end(包括end)
#获取列表指定索引范围所有item
lindex key index #获取列表指定索引的item o(n)
llen #获取列表长度 o(1)
lset key index newValue #设置列表指定索引值为newValue o(n)
blpop key timeout #lpop阻塞版本,timeout是阻塞超时时间,timeout=0为永远不阻塞
brpop key timeout #rpop阻塞版本,timeout是阻塞超时时间,timeout=0为永远不阻塞

应用实现:

1.LRUSH + LPOP = Stack 栈
2.LRUSH + RPOP = Queue 队列
3.LRUSH + LTRIM = Capped Collection 有固定数量的队列
4.LPUSH + BRPOP = Message Queue 消息队列

集合set:

特性:无序 无重复 集合间操作
key values(element)

sadd key element #向集合key添加element(如果element已经存在,添加失败) o(1)
srem key element #将集合key中的element移除掉 o(1)
scard key 计算集合大小
sismember key it #判断it是否在集合中
srandmember key count #从集合中随机挑count个元素
spop key #从集合中随机弹出一个元素
smembers #获取所有集合元素

sdiff set1 set2 #两个集合的差集
sinter set1 set2 #两个集合的交集
sunion set1 set2 #两个集合的并集
sdiff|sinter|suion + store destkey.. #将差集、交集、并集结果保存在destkey中

zset有序集合:

特性:有序 无重复
数据结构:key score value

zadd key score(可以重复) element(不可以重复) #添加score和element o(logN)
zrem key element #删除元素
zscore key element #返回元素的分数
zincrby key incrbyScore element #增加或减少元素的分数
zcard key #返回元素的总个数
zrange key start end [WITHSCORES] #返回指定索引范围内的升序元素[分值]
zrangebyscore key minScore maxScore [WITHSCORES] #返回指定分数范围内的升序元素[分值]
zcount key minScore maxScore #返回有序集合内在指定分数范围内的个数
zremrangebyrank key start end #删除指定排名内的升序元素
zremrangebyscore key minScore maxScore #删除指定分数内的升序元素

Redis各数据结构常用命令的更多相关文章

  1. redis 介绍和常用命令

    redis 介绍和常用命令 redis简介 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键 ...

  2. Redis数据类型和常用命令

    Redis相较于其它的数据库虽然简单,但是要熟记所有命令的用法也并非易事.一个简单的技巧是通过要操作的数据类型来将这些命令进行结构化. 数据类型和对应命令 所有存储于redis中的数据都对应于一个键值 ...

  3. 记录redis安装及常用命令

    Redis安装及常用命令 一.安装 1.下载,解压,进入redis解压目录,make. make PREFIX=目录/redis install :安装到指定目录文件名为redis. 2.将解压目录里 ...

  4. 第18章 Redis数据结构常用命令

    18-1 字符串的一些基本命令 18-1 :配置Spring关于Redis字符串的运行环境 <bean id="poolConfig" class="redis.c ...

  5. VMWare12安装CentOS7以及redis安装和常用命令

    一.vmware安装centos7后没有网卡 VMWare 12版本不提供32位安装程序,只有64位安装程序,如果在安装CentOS时,选择的是CentOS而不是CentOS 64位,则会出现Cent ...

  6. Redis学习笔记--常用命令

    以下为本人学习Redis的备忘录,记录了大部分常用命令 1.客户端连接redis服务端: ===启动Redis服务端 redis-server /yourpath/redis.conf ===启动Re ...

  7. Redis入门及常用命令学习

    Redis简介 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持 ...

  8. redis数据类型及常用命令介绍(图文实例)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhgAAAFLCAYAAACUdvXUAAAgAElEQVR4nO3da1da58L2fT5KfPvc96 ...

  9. Redis总结(七)Redis运维常用命令

    redis 服务器端命令 redis 127.0.0.1:6380> time  ,显示服务器时间 , 时间戳(秒), 微秒数 1) "1375270361" 2) &quo ...

随机推荐

  1. 应用性能测试神器 Gatling,你用过吗?

    在应用程序上线之前,有多少人做过性能测试? 估计大部分开发者更多地关注功能测试,并且会提供一些单元测试和集成测试的用例.然而,有时候性能漏洞导致的影响比未发现的业务漏洞更严重,因为性能漏洞影响的是整个 ...

  2. Linux学习笔记04

    文件查找命令find 文件查找命令: which locate find which:查找命令字所在的位置 locate:模糊匹配(只要包含关键字的文件都查找出来) 不是实时的,基于数据库查找, up ...

  3. IOS应用无法下载、此时无法安装应用程序

    无法安装应用 app开发者,进行程序测试,重试还不行,就重新打包, 个人,更改wifi的dns 在“设置” –> “WiFi” –> 进入当前的WiFi 进入之后点击旁边的叹号,然后进入之 ...

  4. 动态开内存(malloc与calloc)

    malloc与calloc 1.函数原型 #include<stdlib.h> void *malloc(unsigned int size);     //申请size字节的内存 voi ...

  5. VSTO之PowerPoint(PPT)插件开发常用API汇总

    VSTO简介 VSTO(Visual Studio Tools for Office )是VBA的替代,使得开发Office应用程序更加简单,并且用VSTO来开发office应用程序可以使用Visua ...

  6. Git 服务使用搭建集合

    Git 服务使用搭建集合 一.本地Git 仓库搭建与使用 1.Git 概念介绍 版本控制系统 版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统.大部分时候我们使用最频繁的还是对源 ...

  7. Linux部署项目遇到问题解决

    使用Linux部署web项目,可能会遇到各种各样问题导致服务启动失败,以下是我近期部署项目遇到的问题以及解决方案 一.场景:把war包放入tomcat的webapps文件夹下,然后启动tomcat服务 ...

  8. Python 使用k-means方法将列表中相似的句子聚为一类

    由于今年暑假在学习一些自然语言处理的东西,发现网上对k-means的讲解不是很清楚,网上大多数代码只是将聚类结果以图片的形式呈现,而不是将聚类的结果表示出来,一下代码将老师给的代码和网上的代码结合了一 ...

  9. spring boot 加载自定义log4j 文件路径

    spring boot 使用log4j 打印时,需首先去除自带 Logger ,然后加入log4j 依赖 <dependencies> <!-- https://mvnreposit ...

  10. Linux curl 命令详解

    命令概要 该命令设计用于在没有用户交互的情况下工作. curl 是一个工具,用于传输来自服务器或者到服务器的数据.「向服务器传输数据或者获取来自服务器的数据」 可支持的协议有(DICT.FILE.FT ...