Redis各数据结构常用命令
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各数据结构常用命令的更多相关文章
- redis 介绍和常用命令
redis 介绍和常用命令 redis简介 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键 ...
- Redis数据类型和常用命令
Redis相较于其它的数据库虽然简单,但是要熟记所有命令的用法也并非易事.一个简单的技巧是通过要操作的数据类型来将这些命令进行结构化. 数据类型和对应命令 所有存储于redis中的数据都对应于一个键值 ...
- 记录redis安装及常用命令
Redis安装及常用命令 一.安装 1.下载,解压,进入redis解压目录,make. make PREFIX=目录/redis install :安装到指定目录文件名为redis. 2.将解压目录里 ...
- 第18章 Redis数据结构常用命令
18-1 字符串的一些基本命令 18-1 :配置Spring关于Redis字符串的运行环境 <bean id="poolConfig" class="redis.c ...
- VMWare12安装CentOS7以及redis安装和常用命令
一.vmware安装centos7后没有网卡 VMWare 12版本不提供32位安装程序,只有64位安装程序,如果在安装CentOS时,选择的是CentOS而不是CentOS 64位,则会出现Cent ...
- Redis学习笔记--常用命令
以下为本人学习Redis的备忘录,记录了大部分常用命令 1.客户端连接redis服务端: ===启动Redis服务端 redis-server /yourpath/redis.conf ===启动Re ...
- Redis入门及常用命令学习
Redis简介 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持 ...
- redis数据类型及常用命令介绍(图文实例)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhgAAAFLCAYAAACUdvXUAAAgAElEQVR4nO3da1da58L2fT5KfPvc96 ...
- Redis总结(七)Redis运维常用命令
redis 服务器端命令 redis 127.0.0.1:6380> time ,显示服务器时间 , 时间戳(秒), 微秒数 1) "1375270361" 2) &quo ...
随机推荐
- Skier 游戏
# Listing_10-1.py # Copyright Warren Sande, 2009 # Released under MIT license http://www.opensource. ...
- 【iOS】“找不到使用指定主机名的服务器”
今天用 Application Loader 提交 APP 的时,遇到了这个奇葩的问题,如下图: 后来换个网络解决了……我也不知道什么原因,就这么奇葩的弄好了……
- Android Studio项目/Flutter 案例中Gradle报错通用解决方案(包括Unable to tunnel through proxy问题)
目录 Step 1:修改Gradle版本为本地版本 Step 2:修改classpath为Android Studio版本 Step 3:关闭代理 Step 1:修改Gradle版本为本地版本 ...
- 自定义itemCheckView
极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以 ...
- sqoop 密码别名模式 --password-alias
sqoop要使用别名模式隐藏密码 1.首先使用命令创建别名 hadoop credential create xiaopengfei -provider jceks://hdfs/user/pass ...
- 01-Spring Security框架学习--入门(二)
一.入门案例 Spring Security 自定义登录界面 通过之前的一节 01-Spring Security框架学习--入门(一)的简单演示,Spring security 使用框架自带的登录界 ...
- eclipse解决properties文件中文乱码(两种方试)
第一种:大多数网上搜到的情况(不靠谱) 第一步:windows-->properties-->General-->Content Types-->text(如下图) 第二步:p ...
- 定时器任务django-crontab的使用【静态化高频率页面,增加用户体验】【系统的定时器,独立于项目执行】【刘新宇】
页面静态化 思考: 网页的首页访问频繁,而且查询数据量大,其中还有大量的循环处理. 问题: 用户访问首页会耗费服务器大量的资源,并且响应数据的效率会大大降低. 解决: 页面静态化 1. 页面静态化介绍 ...
- WebService1
一.什么是WebService(来源百度百科) Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述. ...
- soap天气查询
public class MainActivity extends AppCompatActivity { private TextView tvContent; @Override protecte ...