6379 OK 192.168.1.111:6379> set mysql 3306 OK 192.168.1.111:6379> keys * 1) "hello" 2) "mysql" 3) "redis " 192.168.1.111:6379> set hello1 world1 OK keys [pattern] 根据正则表达式通配符获取key,redis 是单线程所以keys命令不适合生产环境使用 value2 批量设置key-value 127.0.0.1:6379> mset test v1 test2 v2 test3 v3 OK mget mget key1 key2 key3批量获取key 原子操作,时间复杂度是o(n) 127.0.0.1:6379> mget test test2 test3 1) "v1" 2) "v2" 3) "v3" getset getset key newvalue 1) "hi" 2) "listkey" 3) "redis" 4) "mysql" 5) "list2" 6) "setkey" 7) "c"
:6379 redis-trib.rb info 10.26.25.115:6379 2、节点(node) 命令 1、加入节点:将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子 <node_id> 2)、redis-trib.rb del-node <ip> <port> <node_id> 例如 redis-trib.rb del-node 10.80.82.74:7030 5、redis cluster管理工具redis-trib.rb详解 redis-trib.rb是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下,是基于redis提供的集群命令封装成简单 2、通过cluster getkeysinslot命令,一次性获取远节点迁移slot的pipeline个key的数量. 3、对这些key执行migrate命令,将数据从源节点迁移到目的节点。 2、连接外部redis节点,如果外部节点开启了cluster_enabled,则提示错误。 3、通过scan命令遍历外部节点,一次获取1000条数据。
redis命令不区分大小写 通用命令: 1. 获得符合规则的键名列表: keys pattern 其中pattern符合glob风格 ? (一个字符) * (任意个字符) [] (匹配其中的任意一个字符) \x (转义字符) 需要注意的是keys命令会遍历redis中的所有键,如果键比较多,会影响性能 keys * 会列出当前库中的所有键 可以传入多个key ,其实可以配合 keys命令一起使用: # 可以发现直接使用*,此时是没法删除已有的hashkey键 zyq@ubuntu:~/KiDe/Python/test$ redis-cli KEYS * | xargs redis-cli DEL (integer) 0 zyq@ubuntu:~/KiDe/Python/test$ redis-cli KEYS "hash*" | xargs /Python/test$ redis-cli DEL `redis-cli KEYS "*"` (integer) 1 zyq@ubuntu:~/KiDe/Python/test$ redis-cli
我们可能会遇到需要运行的某些命令在godis中不存在的情况,这个时候我们可以使用其原生的方式运行命令,为了方便使用,封装了一个方法,用于简化这个过程。 需要注意的是,执行命令的返回结果返回的是interface{},需要对其进行解析成可读的实体结构。 传递的参数logger是用来打印日志的: // RunRedisCmd 运行redis命令 func RunRedisCmd(redis *godis.Redis, logger *log.Logger 返回的数组格式的数据,以redis的方式 // // 127.0.0.1:16379> xrange testStream - + // // 1) 1) "1650986325904-0" // 2) = 2 { t.Error("fail incr", err) } rsl, err = utils.RunRedisCmd(redis, logger, "del", "userage") if
1.设置key的value set name gao2.获取key的value get name3.删除key del key1 key2 ... eg2:我记得有个key名称中可能包含e keys *eeg3:我记得有个key名称可能是site或者sitl keys sit[e|l]7.返回随机一个key名称 randomkey8
1.设置key的value set name gao2.获取key的value get name3.删除key del key1 key2 ... eg2:我记得有个key名称中可能包含e keys *eeg3:我记得有个key名称可能是site或者sitl keys sit[e|l]7.返回随机一个key名称 randomkey8
1.String常用命令 2.list常用命令 特点: 存取有序、有下标、允许重复 存值 命令 说明 lpush key value[value …] 从列表的头部插入数据 rpush key value [value …] 从列表的尾部插入数据 取值 命令 说明 lrange key start stop 获取指定列表的从start开始查看到stop的全部数据,stop为-1,代表最后一个 lpop key 从头部移除数据 rpop key 从尾部移除数据 其他操作 命令 说明 lrem key count value 删除当前列表中count个value,count>0从头删,count<0从尾删 ,count=0,删除全部 3.set常用命令 特点: 存取无序、无下标、不允许重复 4.zset常用命令 5.Java操作Redis
redis-cli 中。 使用命令 info Keyspace 查看存储数据的相关信息。
Redis 命令 Redis命令用于在redis服务上执行操作。 要在redis服务上执行命令需要一个redis客户端。Redis客户端在我们之前下载的的redis的安装包中。 语法 Redis客户端的基本语法为: [root@localhost ~]# redis-cli 实例 以下实例讲解了如何启动 redis 客户端: 启动redis客户端,打开终端并输入命令redis-cli 该命令会连接本地的redis 服务。 PING命令,该命令用于检测 redis服务是否启动。 在远程服务上执行命令 如果需要在远程redis服务上执行命令,同样我们使用的也是redis-cli命令。
redis-cli 中。 使用命令 info Keyspace 查看存储数据的相关信息。
如果想要在 Redis 中查看相关的命令可以使用 help 命令来进行查看,命令如下: 127.0.0.1:6379> help @pubsub 按下回车后,可以看到 发布与订阅 相关命令的说明 3、psubscribe 该命令的作用是:按照指定的模式订阅相关的频道。 为了进行测试,再打开一个 Redis 的命令行控制窗口,订阅一个 news.dt 的频道。 (press Ctrl-C to quit) 1) "subscribe" 2) "news.dt" 3) (integer) 1 还需要打开一个 Redis 的命令行控制台窗口,按模式订阅一个 再打开一个 Redis 的命令行窗口来进行测试,命令如下。 127.0.0.1:6379> psubscribe news.?t Reading messages... channels:查看当前 Redis 系统中所有存在的频道,命令如下: 127.0.0.1:6379> pubsub channels 1) "news.dt" 2) "news.it" 3) "news.health
通用命令介绍 Redis 通用命令是一些 Redis 下可以作用在常用数据结构上的常用命令和一些基础的命令,比如删除键、对键进行改名、判断键是否存在等。 简单说,就是 keys 分类的命令,如下图。 ? 上图中圈中的部分,就是所谓的通用的命令。如果想要在 Redis 中查看相关的命令也可以使用 help 命令来进行查看,命令如下。 ) 2 127.0.0.1:6379> mget test1 test2 1) (nil) 2) (nil) 2、exists 命令 exists 命令用来 查询 key 是否存在 127.0.0.1 命令 keys 命令用来 查找所有匹配给定的模式的键 127.0.0.1:6379> keys * 1) "test3" 2) "url" 3) "test1" 4) "test2" 127.0.0.1 :6379> keys test* 1) "test3" 2) "test1" 3) "test2" 在 Redis 中是支持模糊查询的,它有 3 个通配符,分别是:*、 ?
字符串命令 Redis种的字符串有三种类型的值:字节,整数和浮点数 (1)命令列表 SET:SET key value ——设置存储在给定键种的值 GET:GET key value ——获取存储在给定键种的值 GETRANGE命令由以前的SUBSET命令改名而来的,如果是2.6或以上redis版本,使用getrange()方法来获取字串 2. " 2) "hello" (2)阻塞式的列表弹出命令以及在列表之间元素的移动 BLPOP blpop key1 [key2…] timeout ——从一个非空列表中弹出位于最左端的元素,或者在timeout key "1" redis 127.0.0.1:6379> smembers key 1) "2" (2)组合和关联命令 SDIFF:sdiff key1 [key2…] ——返回那些存在于第一集合 散列命令 Redis的散列将多个键值对存储在Redis的键里面 (1)散列常用命令 HSET:hset key-name key value ——为散列添加键值对 HGET:hget key-name
Redis 支持多种数据结构,比如 字符串、列表、集合、有序集合 和 哈希 等数据结构。本次我整理了关于 集合 相关的命令,也就是关于 Sets 相关的命令,如下图。 ? 上图中用红色圈中的部分,就是关于 集合 相关的命令。如果想要在 Redis 中查看相关的命令也可以使用 help 命令来进行查看,命令如下。 常用 Sets 相关命令 Sets 数据类型是 Key 对应的 Value 的类型,在 Redis 中所有的 Key 都是字符串,所谓的数据类型表示的是 Value 的类型。 获取两个集合的差集,并将结果保存到一个 key 中 总结 Redis 的集合类型提供的命令还是比较多的,它不但可以当作一个集合来用,它的 交集、并集 和 差集 还可以实现一些较为有意思的功能 Redis 常用的几种基本数据类型总结完成后,我会再逐步的梳理 Redis 的各种应用场景,希望大家可以喜欢。 ?
Redis 支持多种数据结构,比如 字符串、列表、集合、有序集合 和 哈希 等数据结构。本次我整理了关于 哈希 相关的命令,也就是关于 Hashes 相关的命令,如下图。 上图中用红色圈中的部分,就是关于 哈希 相关的命令。如果想要在 Redis 中查看相关的命令可以使用 help 命令来进行查看,命令如下。 2、hsetnx 该命令的作用是:设置哈希的一个字段,当指定的字段不存在时才会被设置。 > hgetall user002 1) "gender" 2) "femle" 3) "age" 4) "24.5" 5) "weight" 6) "65" 总结 Redis 的哈希类型提供的命令相对比较简单 在后面的内容中,我会逐步的再整理其他相关的命令,还有基础数据结构的一些应用场景。而且,我也会整理一些我看过的 Redis 的源码进行分享。
帮助命令 Redis 有很多的命令,想要一下子记住那么多的命令是不太现实的,而且也没有必要全部背会,因为 Redis 提供了功能帮助命令,只要使用帮助命令即可。 Redis 的帮助命令是 help,和大多数的其他工具类似。 此时,Redis 客户端自动切换到了 hmset 命令,如果是我们想要查看到命令,按下回车键即可。 这就是 Redis 的帮助命令,在刚刚接触 Redis 的时候,会经常使用该命令来查看帮助,快速、直接、省时的 Redis 帮助命令。 在掌握了帮助命令之后,我们就可以方便快捷的展开 Redis 的学习了,因为对于 Redis 的学习,大部分就是在学习用 Redis 提供的命令来管理和使用 Redis。
一、背景 Redis因高性能、轻量的优秀特性成了互联网公司缓存的标配,有的时候我们想增加一些自定义的命令,主要是重度使用Redis的场景,像抢购的场景,要保证多个Redis命令的事务性,如果没有很好的原子性保证 今天我们以一个实际的案例讲述如何增加一个Redis命令,这个命令主要用于防刷的场景: 经常要将某个IP或某个用户封禁一段时间,如果不用这个命令的方案如下: 先incr下,然后判断是否为1,是1则设置过期时间 :表示增加到多少为止不增加了,如果设为10,则返回的最大值就是11,返回11表示已经超出了; 二、编写命令 1、下载redis代码 本文所用Redis版本为3.2.11; 下载代码并切到3.2.11分支 git clone https://github.com/antirez/redis git checkout 3.2.11 2、编写增加命令代码 1)在src/server.c中redisCommandTable 0,NULL,1,1,1,0,0} }; redisCommandTable为一个数组,每个项表示一个redis命令,其中第一个表示命令的名字,第二个为实际处理的函数,第3个为参数的个数,其它的先不详细讨论
Sadd命令 Redis Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。 假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合。 " 2) "foo" redis 127.0.0.1:6379> SCARD myset (integer) 2 Redis Smembers 命令返回集合中的所有的成员。 Redis Scard 命令返回集合中元素的数量。 Srandmember 命令 Redis Srandmember 命令用于返回集合中的一个随机元素。 从 Redis 2.6 版本开始, Srandmember 命令接受可选的 count 参数: 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同 " redis 127.0.0.1:6379> SRANDMEMBER myset1 2 1) "Hello" 2) "world" 参考:https://www.runoob.com/redis/sets-sadd.html
浅浅了解redis基础命令 Microsoft Windows [版本 10.0.19044.2251] (c) Microsoft Corporation。保留所有权利。 /* redis默认是分为16个库用索引来获取通过select x来切换库 */ C:\Users\dengmi>redis-cli 127.0.0.1:6379> select 1 OK 127.0.0.1 :6379[1]> select 2 OK 127.0.0.1:6379[2]> select 0 OK /*刷新库,因为redis是缓存数据库所以当刷新完 库中的内容将被清除*/ 127.0.0.1 :6379> flushdb OK /* redis中存取值都是以key与value来存取 输入set会自动得到生成格式 输入get同样也会生成获取格式 */ 127.0.0.1:6379> set 127.0.0.1:6379> zrange test:student 0 2 1) "aaa" 2) "bbb" 3) "ccc" /* 全局命令 keys * 查看全局的key keys test
Redis的存储是以key-value的键值对的形式存储的,其中key都是String类型,value常见的就是以下的5种。 1. --将key中存储的值都加上2 DECRBY key 2 --将key中存储的值都减去2 2. redis的list是按插入顺序排序的,可以添加的一个节点到链表的头部(头插)或者尾部(尾插),是一个双向链表,对两端的操作性能会比较高,对中间节点的操作性能相对来说较差(因为得通过指针对遍历对应的节点 -- 将 list的尾部(最左边)元素取出 rpop myList --将 list的尾部(最右边)元素取出 4,Set Redis的set和list相似,只不过可以自动去重。 (集合里的每个节点是唯一的,但是评分却可以是相同的),利用这个特性我们可以利用redis来实现排行榜。也可以很快速的获取到一个区间内的节点。