1.Redis基础命令
- 重要概念
redis是单线程模型,所有命令都会进入一个队列,然后依次被执行。
- 全局命令
>>>select dbindex #切换数据库,默认有16个库,库标识符为0-15
>>>keys pattern #列出匹配模式的键(*、?、[]、[^])
>>>dbsize #键总数
>>>exists key #检查键是否存在
>>>del key #删除键
>>>expire key #键过期设置
>>>type key #键类型
>>>object encoding key #显示值的内部编码
>>>rename key newkey #键重命名
>>>renamenx key newkey #键重命名,确保只有newkey不存在时才重命名,防止覆盖
>>>randomkey #随机返回一个键
>>>expire key seconds #键在seconds秒后过期,过期时间为负数,键会立即删除,犹如del命令
>>>pexpire key milliseconds #键在milliseconds毫秒后过期
>>>expireat key timestamp #键在秒级时间戳timestamp后过期
>>>ttl/pttl key #查询键的过期时间(状态:大于等于0的整数、-1、-2)
>>>persist key #将键的过期时间清除
>>>migrate host port key|"" dist-db timeout [copy] [replace] [keys key...] #迁移键
- 字符串类型命令
>>>set key value [ex seconds] [px milliseconds] [nx|xx] #ex,px过期时间 nx不存在|xx存在
>>>setex key seconds value #等同于set..ex 创建时键值时设置过期时间
>>>setnx key value #等同于set..xx 键不存在才创建
>>>get key #获取值
>>>mset key value [key value ...] #批量设置值(节省多次网络传输时间)
>>>mget key [key ...] #批量获取值(节省多次网络传输时间)
>>>incr key #值为整数才自增1,默认从0开始,其他值报错
>>>decr key #自减1
>>>incrby key increment #自定义自增值(可以是负数)
>>>decrby key decrement #自定义自减值(可以是负数)
>>>incrbyfloat key increment #自定义自增值为浮点数(也可以是整数、负数)
- 哈希[1]
>>>hset key field value #键 属性 值
>>>hget key
>>>hdel key field [field ...] #删除一个或多个field
>>>hlen key #计算field个数
>>>hmset key field value [field value ...]
>>>hmget key field [field ...]
>>>hexists key field #判断field是否存在
>>>hkeys key #获取所有的field
>>>hvals key #获取所有的value
>>>hgetall key #获取所有的field-value
>>>hincrby key field
>>>hincrbyfloat key field
>>>hstrlen key field #计算value的字符串长度
- 列表[2]
>>>rpush key value [value ...] #右边插入元素
>>>lrange key start end/0 -1 #从左到右获取列表的元素/所有元素
>>>lpush key value [value ...] #左边插入元素
>>>linsert key before|after pivot value #向某个元素前或者后插入元素
>>>lindex key index #获取列表指定索引下标的元素
>>>llen key #获取列表长度
>>>lpop/rpop key #从列表左边/右边弹出元素
>>>lrem key count value #删除列表中count个value值(count<0代表从右向左删除)
>>>ltrim key start end #按照索引范围保留start到end的值
>>>lset key index newvalue #修改索引为index的值
>>>blpop/brpop key [key ...] timeout #阻塞式弹出,timeout为0将一直阻塞
在使用brpop时,有4点需要注意:
- 列表为空: 如果timeout=3,那么客户端要等到3秒后返回,如果 timeout=0,那么客户端一直阻塞等下去,直到列表添加了数据;
- 列表不为空: 客户端会立即返回;
- 如果是多个键,那么brpop会从左至右遍历键,一旦有一个键能弹出元素,客户端立即返回;
- 如果多个客户端对同一个键执行brpop,那么最先执行brpop命 令的客户端可以获取到弹出的值。
实际上列表的使用场景很多,在选择时可以参考以下口诀:
- lpush+lpop=Stack(栈)
- lpush+rpop=Queue(队列)
- lpush+ltrim=Capped Collection(有限集合)
- lpush+brpop=Message Queue(消息队列)
- 集合[3]
>>>sadd/srem key element [element ...] #添加/删除元素
>>>scard key #计算元素个数
>>>sismember key element #判断元素是否在集合中
>>>srandmember key [count=1] #随机从集合中返回指定个数元素,元素不会删除
>>>spop key [count=1] #随机从集合中弹出元素,元素会删除
>>>smembers key #获取所有元素
>>>sinter key [key ...] #求多个集合的交集
>>>sunion key [key ...] #求多个集合的并集
>>>sdiff key [key ...] #求多个集合的差集
>>>sinterstore destination key [key ...] #求多个集合的交集并保持,下同
>>>suionstore destination key [key ...]
>>>sdiffstore destination key [key ...]
有序集合[4]
>>>zadd key [NX|XX] [CH] [INCR] score member [score member ...] #添加成员
>>>acard key #计算成员个数
>>>zrank key member #顺序计算成员排名(从低到高)
>>>zrevrank key member #逆序计算成员排名(从高到低)
>>>zrem key member [member ...] #删除成员
>>>zincrby key increment member #增加成员的分数
>>>zrange key start end [withscores] #返回指定排名范围的成员[分数]
>>>zrevrange key start end [withscores] #同上,逆序
>>>zrangebyscore key min max [withscores] [limit offset count]
#返回指定分数范围的成员,同时min和max还支持开区间(小括号)和闭区间(中括号),-inf和+inf分别代表无限小和无限大:
127.0.0.1:6379> zrangebyscore user:ranking (200 +inf withscores
1) "tim"
2) "220"
3) "martin"
4) "250"
5) "tom"
6) "260"
>>>zrevrangebyscore key max min [withscores] [limit offset count] #同上,逆序
>>>zcount key min max #返回指定分数范围成员个数
>>>zremrangebyrank key start end #删除指定排名内的升序元素
>>>zremrangebyscore key min max #删除指定分数范围的成员
>>>zinterstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max] #交集
>>>zunionstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max] #并集
1.Redis基础命令的更多相关文章
- windows下使用redis,Redis入门使用,Redis基础命令
windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...
- 【redis】redis基础命令学习集合
写在前面 Redis是一个高速的内存数据库,它的应用十分广泛,可以说是服务端必学必精的东西.然而,学以致用,无用则无为.学了的东西必须反复的去用,去实践,方能有真知.这篇文章记录了我在redis学习过 ...
- 初识redis(redis基础命令)
redis简介redis是一个开源(BSD许可)的使用C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,它可以用作数据库.缓存和消息中间件,并提供多种语言的API.从201 ...
- Redis基础命令
redis本身不区分命令的大小写,这里一律用小写,以下是部分简单的命令. 1.连接操作命令 quit:关闭连接(connection) auth:简单密码认证 help cmd: 查 ...
- Redis 基础命令
1. 进入redis目录,启动redis cd src ./redis-server 2. 进入redis目录,启动redis客户端 cd src ./redis-cli 3. info命令 4. ...
- 一、Redis 基础命令---总括
1.redis命令不区分大写和小写.可是KEY区分大写和小写. 2.redis-cli -h 127.0.0.1 -p 6379 依据IP/PORT链接服务端 3.redis-server --por ...
- Redis学习笔记(2) Redis基础类型及命令之一
1. 基础命令 (1) 获取符合规则的键名列表 格式为:KEYS pattern 其中pattern表示支持通配符 # 建立一个名为bar的键 > SET bar OK # 获取Redis所有键 ...
- Redis基础认识及常用命令使用(一)--技术流ken
Redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集 ...
- Redis基础认识及常用命令使用(一)--转载
Redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集 ...
随机推荐
- TkMybatis 是什么?
一.TkMybatis Tkmybatis 是基于 Mybatis 框架开发的一个工具,通过调用它提供的方法实现对单表的数据操作,不需要写任何 sql 语句,这极大地提高了项目开发效率. 二.怎么用? ...
- 冲刺随笔——Day_Three
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺 作业正文 正文 其他参考文献 无 ...
- Mysql主从同步机制
1.1 主从同步介绍和优点 *在多台数据服务器中,分为主服务器和从服务器.一台主服务器对应多台从服务器. *主服务器只负责写入数据,从服务器只负责同步主服务器的数据,并让外部程序读取数据 *主服务器写 ...
- 为什么SimpleDateFormat不是线程安全的?
一.前言 日期的转换与格式化在项目中应该是比较常用的了,最近同事小刚出去面试实在是没想到被 SimpleDateFormat 给摆了一道... 面试官:项目中的日期转换怎么用的?SimpleDateF ...
- macos brew zookeeper,安装后zookeeper启动失败?
一.Zookeeper安装流程 执行如下安装命令: brew install zookeeper 执行截图如下: 安装后查看 zookeeper 安装信息(默认拉取最新版本) brew info zo ...
- 学习笔记(1):零基础掌握 Python 入门到实战-列表与元祖到底该用哪个?(二)...
立即学习:https://edu.csdn.net/course/play/26676/338778?utm_source=blogtoedu 列表不能通过增加索引增加元素 可以使用list中的app ...
- centos7中安装redis出现的问题
重现步骤: 1.解压redis包后 执行make命令.出现一堆东西,其中有gcc:命令未找到. 解决:安装 yum install gcc-c++(需要有网) 2.安装完gcc命令后,再make.出现 ...
- moviepy音视频开发:音频拼接函数concatenate_audioclips介绍
☞ ░ 前往老猿Python博文目录 ░ concatenate_audioclips函数用于将多个音频剪辑进行拼接合成一个顺序播放的剪辑. 调用语法: concatenate_audioclips( ...
- 老猿学5G扫盲贴:与用户和终端相关的名词UE、SUPI、GPSI、PEI
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 和4 ...
- Python中容器指的是什么?
容器:容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中. 容器是一种可以包含其他类型对象(如列表.元组.字典等)作为元 ...