1.通用命令

  • keys: 计算所有的键 O(n)
  • $redis->auth("admin"); //授权
  • dbsize: 数据库大小
  • $redis->info();//获取redis服务信息
  • exists keys: key判断键是否存在,可以指定多个键,命令返回的是存在的键的个数,返回0表示指定的键都不存在
  • del:删除key可以指定删除多个键,命令返回的是成功删除的键的个数。
  • expire key seconds: 设置过期时间 命令设置键在指定秒数后过期
  • expireat 命令设置键在秒级时间的时间戳后过期 Redis在2.6版本之后,提供了毫秒级的过期设置,分别是pexpire命令和pexpireat命令,不管是秒级还是毫秒级,不管是时间还是时间戳,Redis内部使用的都是pexpireat。
  • type key: 获取key的数据类型
  • move age 1//把age 移动到1库
  • ttl key: 查看key的剩余过期时间单位是秒返回值为-1时,表示没有设置过期时间,返回值为正数时,表示剩余的时间,单位是秒,返回为-2时,表示键已过期被删除。
  • pttl 单位是毫秒 同上
  • persist key: 去掉key的过期时间
  • shutdown # 停服务器
  • mv dump.rdb.bak dump.rdb 备份的dump.rdb.bak重新命名成为dump.rdb
  • flushall 清除所有数据库中的数据
  • flushdb清空当前数据库的中的数据
  • jedis.close() //关闭连接 ;
  • INCR key //将key中储存的数字值加1 注意 incr 一个不是 int 的 value 会返回错误,incr 一个不存在的 key,则设置 key 为 1
  • DECR key //将key中储存的数字值减1
  • INCRBY key increment //将key所储存的值加上increment
  • DECRBY key decrement //将key所储存的值减去decrement
  • ps -ef | grep redis 查看是否启动
  • redis-cli 进入客户端
  • redis-cli shutdown 关闭客户端
  • service redis start 启动
  • service redis stop 停止
  • service redis restart 重启
  • $redis->randomkey();//随机返回一个key
  • rename给已存在键重命名。如果给不存在的键重命名,会返回错误。使用rename时需要注意,如果命名的新键已经存在,则其原值将被覆盖,比如示例中rename key2 key3时,key3的原值java被覆盖,为防止这种情况发生,可以使用renamenx命令,只有新键不存在的时候,重命名才会成功。如果重命名的名称和原名称相同,在3.2版本之后会返回OK,而之前的版本会返回错误,需要注意一下。
  • 禁用命令:KEYS、FLUSHDB、FLUSHALL等在config配置文件中通过rename-command禁用

启动方式分为

  • 最简启动 redis-server
  • 动态参数 redis-server --port 6380
  • 配置文件 redis-server configPath

验证是否启动

  • ps -ef | grep redis
  • netstat -antpl | grep redis
  • redis-cli -h ip -p port ping

使用 SCAN cursor [MATCH pattern] [COUNT count]

注:

  • cursor:游标
  • MATCH pattern:查询 Key 的条件
  • Count:返回的条数

SCAN 是一个基于游标的迭代器,需要基于上一次的游标延续之前的迭代过程。

SCAN 以 0 作为游标,开始一次新的迭代,直到命令返回游标 0 完成一次遍历。

此命令并不保证每次执行都返回某个给定数量的元素,甚至会返回 0 个元素,但只要游标不是 0,程序都不会认为 SCAN 命令结束,但是返回的元素数量大概率符合 Count 参数。另外,SCAN 支持模糊查询。

例:

SCAN 0 MATCH test* COUNT 10 //每次返回10条以test为前缀的key

2.列表类型

  • Rpush key value:将元素添加到列表右边
  • lpush key value:将元素添加到列表左边
  • linsert key before|after value newValue O(n)
  • lpop key:删除列表最左边的元素,且返回元素
  • rpop key:删除列表最右边的元素,且返回元素
  • lrem key count value (删除count个value元素) 0(n)
  • ltrim key start end $redis->ltrim("list",0,1);
  • (按照索引范围修剪列表) o(n) //保留指定key的值的范围内的数据 0为头 -1为尾
  • lrange key start end (包含end) (获取列表制定索引范围)$redis->lrange("list",0,-1);
  • lindex key index o(n) //返回list中index位置的元素
  • llen key //返回list的长度
  • lset key index newValue //设置list中指定下标的元素值 lset(list,位置,值),位置可以从头或者从尾
  • //$redis->rpoplpush("list","listt");//从第一个LIST的尾部移除元素并添加到第二个LIST的头部
  • blpop key timeout (lpop的阻塞版本)
  • brpop key timeout (rpop的阻塞版本)
  • lpush + lpop = stack
  • lpush + rpop = queue
  • lpush + ltrim = Capped Collection
  • lpush + brpop = Message Queue

3.字符串类型

  • 场景:缓存、计数器、分布式锁
  • get key
  • set key value //赋值
  • incr key //自增,默认值1 注意 incr 一个不是 int 的 value 会返回错误,incr 一个不存在的 key,则设置 key 为 1
  • decr key //自减,默认值1
  • incrby key k //必须给定参数值 同 incr 类似,加指定值 ,key 不存在时候会设置 key,并认为原来的 value 是 0
  • decrby key k //必须给定参数值
  • setnx key value 值不存在才设置 //设置key对应的值为string类型的value,如果key已经存在,返回0,nx是not exist的意思
  • $redis->msetnx(array('key0' => 'value0', 'key1' => 'value1'));//全部成功返回1,否则失败一个也返回0
  • set key value xx 存在才设置
  • mget 批量获取 O(n) //批量获取值 如果对应 key 不存在,则对应返回 nil。
  • mset 批量设置 O(n) //批量赋值 成功返回 ok 表示所有的值都设置了,失败返回 0 表示没有任何值被设置。
  • getset key newvalue 设置新值返回旧值 //getset设置key的值,并返回key的旧值
  • append key value 将新值追加到旧值 //给指定的key的字符串追加value,返回新字符串的长度
  • strlen 获取值的长度 取指定 key 的 value 值的长度。
  • incrbyfloat key 3.5 增加对应key 3.5
  • getrange key start end //getrange获取子字符串
  • setrange key start value //设置子字符串替换,key,开始位置,替换值
  • $redis->setex('key',10,'value10'); //带生存时间的写入值单位s

4.集合类型

Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加,删除和查找的复杂程度都是0(1) 对集合我们可以取并集,交集,差集。通过这些操作我们可以实现SNS中的好友推荐和blog的tag功能

  • 无序 无重复 支持集合间操作 set:String 类型的无序集合,且元素不能重复
  • sadd key element (添加)
  • srem key element (删除)删除set集合中某元素
  • scard key //获取集合key的元素个数
  • //$redis->sdiffstore("dif","set1","set2");//返回多个集合的差集,存在第三个集合里面
  • //$res = $redis->sinterstore("inter","set","set1");///取多个集合的交集,存在第三个集合里面
  • sismember key element //判断member元素是否存在于集合key中
  • srandmember key count (随机选出count个元素) 随机返回集合内的一个元素,不会删除元素
  • //$redis->sunionstore("union","set","set1");///取多个集合的并集,存在第三个集合里面
  • //$redis->smove("set1","set2","value");///第一个集合元素剪切到第二个集合里面。
  • spop key (随机弹出一个元素)
  • smembers key (取出所有元素 小心使用)
  • sscan (遍历集合)
  • sdiff 差集
  • sinter 交集
  • sunion 并集
  • sadd = 打标签
  • spop/srandmember = 随机
  • sadd + sinter = Social Graph

5.有序集合类型

sortedset 和 set 一样也是 string 类型元素的集合,且不允许重复的元素,不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序,有序集合的成员是唯一,但分数(score)却可以重复

  • zadd key score element O(logN) //往有序集合key中加入带分值元素
  • zrem key element (删除)
  • zscore key element //返回有序集合key中元素member的分值
  • zincrby key increScore element (增加分数)
  • zcard key (返回个数)
  • zrange key start end withscores (获取元素) //正序获取有序集合key从start下标到stop下标的元素
  • zrangebyscore key minScore maxScore
  • zcount key minScore maxScore (O(logN + m))
  • zremrangebyrank key start end (删除指定排名内的升序元素)
  • zremrangebyscore key start end (删除指定分数内的升序元素)
  • zrevrank
  • zrevrange //倒序获取有序集合key从start下标到stop下标的元素
  • zrevrangebyscore
  • zinterstore
  • zunionstore

6.哈希类型

  • hget key filed //单个获取
  • hset key field value //单个设置
  • hdel key field $redis->hdel("test","key");//删除指定hash的field
  • hgetall key O(n) 获取所有的field和value
  • hexists key field $redis->hexists("test","usernames");//测试hash field 存在1,不存在0
  • hlen key 获取字段数量 $redis->hlen("test"); //返回hash 里所有的 field 的数量
  • hmget key field1 field2 O(n) $redis->hmget("testabc",array("a","b","c"));//批量获取
  • hmset key field1 value1 field2 value2 O(n) $redis->hmset("testabc",array("a"=>1,"b"=>2,"c"=>3,'d'=>4));//批量设置
  • hincrby key field value $redis->hincrBy("test","password","123456");//设置hash field 添加key和value
  • hvals key 返回hash key对应所有field的value O(n)
  • hkeys key 返回hash key对应的所有field O(n)
  • hsetnx key field value $redis->hsetnx("test","username","admin@qq.com");
  • //设置hash field 为指定的值value,如果feild已经存在,返回0,nx是not exist的意思
  • hincrby key field intCounter
  • hincrbyfloat key field floatCounter

scan的优缺点

优点

  • 提供键空间的遍历操作,支持游标,复杂度O(1), 整体遍历一遍只需要O(N)
  • 提供结果模式匹配
  • 支持一次返回的数据条数设置,但仅仅是个hints,有时候返回更多
  • 弱状态,所有状态只需要客户端需要维护一个游标

缺点

  • 无法提供完整的快照遍历,也就是中间如果有数据修改,可能有些涉及改动的数据遍历不到
  • 每次返回的数据条数不一定,极度依赖内部实现
  • 返回的数据可能有重复,应用层需要能够处理重入逻辑

HyperLogLog命令

示例:

redis 127.0.0.1:6379> PFADD w3ckey "redis"1) (integer) 1redis 127.0.0.1:6379> PFADD w3ckey "mongodb"1) (integer) 1redis 127.0.0.1:6379> PFADD w3ckey "mysql"1) (integer) 1redis 127.0.0.1:6379> PFCOUNT w3ckey(integer) 3

连接相关命令

服务器相关命令

发布订阅命令

脚本相关命令

Redis 脚本使用 Lua 解释器来执行脚本。 Reids 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL

地理位置(geo) 命令

redis cli 删除key 模糊_redis 常用函数相关推荐

  1. redis cli 删除key 模糊_Redis集群及雪崩

    redis分布式集群 上一篇 主从复制(哨兵),虽然主从能提升读的并发,但是单个master节点的容量是有限的,内存数据达到一定程度就会有瓶颈,无论多少套主从,master的容量都是最终的瓶颈.这个时 ...

  2. redis cli 删除key 模糊_Web基础配置篇(六): Redis的安装配置及基本操作

    Web基础配置篇(六): Redis的安装配置及基本操作 一.概述 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的A ...

  3. redis cli 删除key 模糊_不同操作系统下,Redis的使用命令

    Redis在Linux下的使用命令 启动redis redis-server redis.conf 进入redis服务 redis-cli 连接redis服务器 redis-cli -h redis域 ...

  4. php redis删除所有key,php redis批量删除key的方法

    php redis批量删除key的方法,遍历,命令,前缀,数组,增量 php redis批量删除key的方法 易采站长站,站长之家为您整理了php redis批量删除key的方法的相关内容. php ...

  5. php redis 删除key 通配符,php中redis批量删除key的方法是什么

    php中redis批量删除key的方法是什么 发布时间:2020-08-28 14:42:05 来源:亿速云 阅读:159 作者:小新 小编给大家分享一下php中redis批量删除key的方法是什么, ...

  6. php redis 清空list_php redis批量删除key的方法

    php redis删除key的方法:首先使用scan命令增量迭代的方式遍历出以[XX]为前缀的key:然后通过unlink函数删除指定的key即可. php redis批量删除key 摘要 使用sca ...

  7. 集成redis,删除key报“srem“异常

    Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: ERR wrong number of arguments ...

  8. redis批量删除key命令

    1.cd到redis的src目录,要使用其中的文件redis-cli执行后续命令(也可能不需要这步) cd /home/useradmin/redis-5.0.3/src 2.redis批量删除key ...

  9. redis 批量删除 key

    redis 批量删除 key 使用 lua 脚本简单实现一个使用 keys 指令和 del 指令批量删除 key 的功能. local keyList = redis.call('keys', ARG ...

最新文章

  1. Xamarin 2017.10.9更新
  2. MIT提出Matlab插件mNeuron:实现深度模型神经元的可视化
  3. 机器学习系列1:单变量线性回归
  4. Redis的简单实践
  5. ABAP开发如何动态的实现任意表的ALV显示
  6. CNN卷积神经网络推导和实现
  7. silverlight之ToolTipService
  8. 解析word template返回使用的webservice WSDL和Operation
  9. AeroFS 开源 SSMP 协议,包含 Java 和 Go 实现
  10. js正则匹配小数点后2位_正则实践与详解
  11. 如何用一句话证明你搞 IT(挨踢)的?
  12. 输入密码后默认回车提交登录事件
  13. 移动端页面适配方案(viewport)
  14. smartdns使用指南_OpenWrt之SmartDNS 使用教程(PW版)
  15. thinkphp集成editormd一系列实战
  16. CRC校验的计算和原理(包括对模2除法的说明)
  17. 基于 word2vec 模型的文本分类任务
  18. axio.js封装和环境配置
  19. [BZOJ 3654] 图样图森破
  20. 中国古语中的十大智慧

热门文章

  1. oracle 数据导入导出
  2. 我的阿里梦——淘宝前端必备技能
  3. SecureCRT自动登录
  4. Testing tools
  5. 临近期末,图书管理系统课设项目安排上(附源码)
  6. 《统计学习方法》资源
  7. 大数据小项目之电视收视率企业项目04--完全分布式搭建
  8. 设计模式(三)外观模式
  9. ansible学习笔记
  10. Swift实战-QQ在线音乐(第二版)