• exists命令:用于判断一个key是否存在,存在则返回1,不存在则返回0

  • move命令,和它的英文意思一样,用于移动一个key到指定的库

  • expire 和 ttl 命令,expire命令可以给一个key设置一个过期时间,默认单位为秒,通过ttl命令可以查看到一个key剩余时间,如果剩余时间为-1则代表这个key为永久

  • type key :用于查看当前key的一个类型

String类型常用命令


  1. set key value:设置一个key和一个value;

  2. get key :根据key获得value;

  3. append key “追加value”:给指定的key拼接一个字符串,如果这个key不存在,就相当于set一个key-value;

  4. strlen key:获取这个key的字符串长度;

  5. 当value的值为数字时,可以使用incr key(key值加1),decr(key值减1)

  6. incrby key 步长 :可以给key的value设置一次增加多少,decrby类似,一次减多少

  1. getrange key start end : 获取key的value从start到end长度的字符串值,下标从零开始,如果end的值为-1就是直接get这个key的value

  2. setrange key start value : 给key从某下标开始用value替换后面的值

  1. setex(set with expire) : set一个key并设置过期时间

  2. setnx(set if not exists):如果key不存在进行设置,存在则返回0(失败) 在分布式锁中经常使用

  1. mset key1 value1 key2 value2 : 用于批量设置key-value

  2. mget key1 key2:用于批量获得

  1. msetnx : setnx的一个增强版,可以批量设置,其中每一个key都会判断是否存在,要注意的是,如果有一个key设置失败,那么整个都会设置失败,可以将msetnx理解成一个原子操作。

  2. getset :先对key进行一个get操作,如果key不存在直接返回nil并设置这个key,如果存在则返回key的value值并将新的value覆盖之前那个。

有关List操作常用命令


简单介绍一下list的数据结构,可以看成一个队列,然后left可以看成头部,然后right可以看成尾部

  • lpush : 当key不存在的时候创建一个list类型的key-value,并在其头部添加元素可以添加一个或多个

  • rpush : 当key不存在的时候创建一个list类型的key-value,并在其尾部添加元素可以添加一个或多个

  • lrange : 可以联系getrange进行记忆,不过这里是取一定范围的元素,下标start也从0开始,然后end为-1时表示展示全部

127.0.0.1:6379> lpush mylist xiec zhangs # 创建一个key为mylist的list结构的key-value ,并添加两个元素,先添加xiec,然后再zhangs,所以第一个元素为zhangs

(integer) 2

127.0.0.1:6379> lrange mylist 0 -1 # 通过lrange进行查看,也可以看出第一个元素是zhangs

  1. “zhangs”

  2. “xiec”

127.0.0.1:6379> rpush mylist lisi # rpush 可以理解成再尾部添加一个元素,所以lisi再最后

(integer) 3

127.0.0.1:6379> lrange mylist 0 -1

  1. “zhangs”

  2. “xiec”

  3. “lisi”

  • lpop:移除最左(头部)的一个元素

  • rpop: 移除最右边(尾部)的一个元素

127.0.0.1:6379> lpush mylist hello1 # 通过lpush命令为key为mylist的增加三个元素

(integer) 1

127.0.0.1:6379> lpush mylist hello2

(integer) 2

127.0.0.1:6379> lpush mylist hello3

(integer) 3

127.0.0.1:6379> lrange mylist 0 -1 #通过lrange进行查看

  1. “hello3”

  2. “hello2”

  3. “hello1”

127.0.0.1:6379> lpop mylist # 移除mylist中第一个元素(头部第一个)

“hello3”

127.0.0.1:6379> rpop mylist # 移除mylist尾部第一个元素

“hello1”

127.0.0.1:6379> lrange mylist 0 -1 # 再次通过lrange进行查看发现只剩一个

  1. “hello2”
  • lindex: 通过指定的下标来获取元素,下标从0开始

127.0.0.1:6379> lrange mylist 0 -1 # 对mylist中元素进行查看

  1. “hello1”

  2. “hello2”

  3. “hello3”

127.0.0.1:6379> lindex mylist 2 #获取下标为2的list中的元素

“hello3”

  • llen : 返回list列表的长度

  • lrem: 移除list列表中的指定元素,可以一次移除多个

  • ltrim: 相当于剪辑,获取指定范围的list的元素,其他元素将被移除

127.0.0.1:6379> lrange mylist 0 -1 #查看mylist中的元素

  1. “hello4”

  2. “hello3”

  3. “hello2”

  4. “hello1”

127.0.0.1:6379> llen mylist # 获取长度

(integer) 4

127.0.0.1:6379> lpush mylist hello1 # 为了测试lrem可以移除多个增加一个hello1,list是有序的,所以元素可以重复

(integer) 5

127.0.0.1:6379> lrange mylist 0 -1

  1. “hello1”

  2. “hello4”

  3. “hello3”

  4. “hello2”

  5. “hello1”

127.0.0.1:6379> lrem mylist 1 hello4 #移除mylist中值为hello4的元素,然后移除1个

(integer) 1

127.0.0.1:6379> lrange mylist 0 -1

  1. “hello1”

  2. “hello3”

  3. “hello2”

  4. “hello1”

127.0.0.1:6379> lrem mylist 2 hello1 #移除mylist中值为hello1的元素,然后移除2个

(integer) 2

127.0.0.1:6379> lrange mylist 0 -1

  1. “hello3”

  2. “hello2”

127.0.0.1:6379> rpush mylist hello1 # 为测试方便增加一个元素

(integer) 3

127.0.0.1:6379> lrange mylist 0 -1

  1. “hello3”

  2. “hello2”

  3. “hello1”

127.0.0.1:6379> ltrim mylist 0 1 #对mylist中的元素进行截取,截取第0~1个

OK

127.0.0.1:6379> lrange mylist 0 -1

  1. “hello3”

  2. “hello2”

  • rpoplpush : 返回并移除list中的最后一个元素,并把该元素加入到一个新的list中

  • lset : 通过指定的下标为list设置一个值,类似于update,如果下标再list中不存在,或者list不存在都会报错

  • linsert : 给list再指定元素前或者后来插入一个元素

127.0.0.1:6379> lpush mylist hello1 hello2 hello3 #创建mylist并新增三个元素

(integer) 3

127.0.0.1:6379> lrange mylist 0 -1

  1. “hello3”

  2. “hello2”

  3. “hello1”

127.0.0.1:6379> rpoplpush mylist mylist1 # 将mylist中最后一个元素弹出,并增加到mylist1中,如果mylist1不存在则会创建

“hello1”

127.0.0.1:6379> lrange mylist 0 -1

  1. “hello3”

  2. “hello2”

127.0.0.1:6379> keys *

  1. “mylist”

  2. “mylist1”

127.0.0.1:6379> lrange mylist1 0 -1

  1. “hello1”

127.0.0.1:6379> lset mylist 0 xiec # 将下标为0的元素更新为xiec

OK

127.0.0.1:6379> lrange mylist 0 -1

  1. “xiec”

  2. “hello2”

127.0.0.1:6379> linsert mylist before xiec lisi # 再mylist中再元素值为xiec的前面增加一个lisi元素

(integer) 3

127.0.0.1:6379> lrange mylist 0 -1

  1. “lisi”

  2. “xiec”

  3. “hello2”

Set集合:set和list最主要的区别和java集合类似,里面的元素无序,并且不可以重复


  • sadd: 用于创建一个set类型的key-value 类型的键值对,并往里面增加一个或多个值

  • smembers : 查看一个set集合中的所有元素

  • sismember : 判断一个元素是否再set集合中,存在返回1,不存在返回0

  • scard : 获取set集合的长度

127.0.0.1:6379> sadd myset hello word xiec

(integer) 3

127.0.0.1:6379> smembers myset

  1. “xiec”

  2. “word”

  3. “hello”

127.0.0.1:6379> sismember myset xiec

(integer) 1

127.0.0.1:6379> scard myset

(integer) 3

  • srem: 移除set集合中一个具体的元素

  • srandmember : 从set 集合中随机取出一个或多个值

  • spop : 随机从set集合中移除一个元素

  • smove : 从一个set集合中移动一个元素到另一个set集合中,如果另一个set集合不存在则会创建

127.0.0.1:6379> flushdb #为演示先清空数据库

OK

127.0.0.1:6379> sadd myset hello word xiec happy

(integer) 4

127.0.0.1:6379> srem myset hello # 从myset中移除值为hello的元素

(integer) 1

127.0.0.1:6379> smembers myset #查看myset中的元素

  1. “xiec”

  2. “word”

  3. “happy”

127.0.0.1:6379> srandmember myset # 从myset集合中随机取出一个值,并不会从set集合中删除

“word”

127.0.0.1:6379> smembers myset

  1. “xiec”

  2. “word”

  3. “happy”

127.0.0.1:6379> spop myset # 从set集合中随机选取一个元素并删除

“xiec”

127.0.0.1:6379> smembers myset

  1. “word”

  2. “happy”

127.0.0.1:6379> smove myset myset1 word # 将myset集合中的world元素移动到myset1中myset1不存在则会创建

(integer) 1

127.0.0.1:6379> keys *

  1. “myset1”

  2. “myset”

127.0.0.1:6379> smembers myset1

  1. “word”
  • sdiff : 计算两个集合的差集

  • sinter : 计算两个集合的交集

  • sunion : 计算两个集合的并集

127.0.0.1:6379> flushdb

OK

127.0.0.1:6379> sadd set1 a b c d

(integer) 4

127.0.0.1:6379> sadd set2 c d e f

(integer) 4

127.0.0.1:6379> sdiff set1 set2 # 差集,set1减去set2剩下的就是a,b

  1. “b”

  2. “a”

127.0.0.1:6379> sinter set1 set2 #交集,很容易理解,就是两个set集合的共同元素

  1. “d”

  2. “c”

127.0.0.1:6379> sunion set1 set2 #并集,就是把两个集合的所有元素

  1. “f”

  2. “b”

  3. “e”

  4. “a”

  5. “d”

  6. “c”

Hash:hash和String的命令很类似,可以联合记忆,hash的value是一个map集合。

====================================================================================================================

  • hset :设置一个hash类型的key value

  • hget : 从hash的map中取出具体key的值

  • hmset : 和String类型的mset类似,这个可以批量设置map中的键值对

  • hmget : 同时获取多个map中多个key的value

127.0.0.1:6379> hset myhash name xiec

(integer) 1

127.0.0.1:6379> hget myhash name

“xiec”

127.0.0.1:6379> hmset myhash age 23 sex nan

OK

127.0.0.1:6379> hmget myhash name age

  1. “xiec”

  2. “23”

  • hgetall : 获取一个hash中的全部元素,以key-value形式展示

  • hdel : 删除hash中的一个key,删除时value也会同步删除

  • hlen : 获取hash中有多少个key

127.0.0.1:6379> hset myhash name xiec

(integer) 1

127.0.0.1:6379> hget myhash name

“xiec”

127.0.0.1:6379> hmset myhash age 23 sex nan

OK

127.0.0.1:6379> hmget myhash name age

  1. “xiec”

  2. “23”

127.0.0.1:6379> hgetall myhash

  1. “name”

  2. “xiec”

  3. “age”

Redis常用命令总结,为什么阿里的程序员成长如此之快相关推荐

  1. 看完Alibaba“Java成长笔记”我懂了! 为什么阿里的程序员成长如此之快?

    前言 关于技术人如何成长的问题,一直以来都备受关注,因为程序员职业发展很快,即使是相同起点的人,经过几年的工作或学习,会迅速拉开极大的差距,所以技术人保持学习,提升自己,才能够扛得住不断上赶的后浪,也 ...

  2. 为什么阿里的程序员成长如此之快?阿里高级算法专家公开10份资料,先睹为快

    作为一个3-5年的Android工程师,我们经常会遇到这些瓶颈: 1.技术视野窄 长期在小型软件公司,外包公司工作,技术视野被限制的太厉害 2.薪资提升难 初中级Android岗位薪资上升空间有限,基 ...

  3. 为什么阿里的程序员成长如此之快?最新BAT大厂面试者整理的Android面试题目模板,涨姿势了!

    前言 相信前几天在朋友圈晒无聊的小伙伴们,也陆续结束了假期.很多公司为了员工的健康考虑,启动了远程办公模式. 床在桌边,饭在桌上,家里一切都那么安逸,专心工作真的是一件难事.远程工作最大的敌人就是:你 ...

  4. Flutter 里的语法糖解析,知其所然方能潇洒舞剑,为什么阿里的程序员成长如此之快

    ================================================================ 首先如下图所示,我们写一段简单的代码,通过 late 声明了一个 pl ...

  5. Redis常用命令之操作Hash类型

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

  6. Redis 常用命令的学习

    Redis 常用命令的学习 文章目录 Redis 常用命令的学习 1. 介绍 2. Redis 的五种数据类型以及操作命令 1. 连接 2. Redis的key的操作命令 3.字符串类型:string ...

  7. Redis常用命令集

    Redis常用命令集 1)连接操作命令 quit:关闭连接(connection) auth:简单密码认证 help cmd: 查看cmd帮助,例如:help quit 2)持久化 save:将数据同 ...

  8. Redis —— 常用命令一览

    引言 参考<菜鸟教程 Redis 常用命令>,其中红色为极其重要,蓝色为重要. 一.总览 二.key相关命令 三.String 相关命令 四.Hash 相关命令 五.List 相关命令 六 ...

  9. redis常用命令:

    redis常用命令: 一 .键值相关命令: key:取出当前数据库中的所有key: keys *   //全匹配 keys  my* //模糊匹配 exists : 确认一个key是否存在,返回值1存 ...

  10. 查看redis常用命令

    Redis常用命令 一. Connection连接 ping 使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 案例: 测试ping quit 请求服 ...

最新文章

  1. 解决stamp mismatch with graph file
  2. zookeeper的设计猜想-阶段二:执行事务提交
  3. oracle的一些基本操作,Oracle中的一些基本操作
  4. select 1 from 浅析
  5. python编写排列组合,密码生产功能
  6. 计算机二级学校查询,计算机等级考试查询系统
  7. 学习老男孩linux全程班决心书
  8. 反编译获取线上任何微信小程序源码(转)
  9. HDU 2665 Kth number(主席树静态区间第K大)题解
  10. STC学习:可切换内容的电子音乐
  11. ACM MM论文放榜!淘系技术内容互动算法团队4篇论文入选!
  12. 基于Qt开发的中国象棋 (1) 双人对战
  13. java long to int_Java long(Long)与int(Integer)之间的转换
  14. 51单片机外部中断实例
  15. IPhone手机无法连接蓝牙
  16. Android——TextView指定字符串颜色高亮,实现类似微信、支付宝搜索结果中搜索字段高亮的效果
  17. 【opencv3】滑动条调节RGB颜色阈值并输出滑动条的值
  18. 欧拉角中各种角度的名称
  19. Async 异步转同步
  20. mysql中对数据的去重

热门文章

  1. 初中信息技术考试:Python试题及答案
  2. 初中计算机考试知识,初中信息技术学业考试《基础知识复习提纲》
  3. 华三交换机如何进入配置_如何初始化配置H3C交换机
  4. Excel VBA 删除 表格中的图片
  5. word 中快速加入序号等符号
  6. 教育信息化2.0建设解决方案
  7. stm32矩阵键盘c语言程序,stm32矩阵键盘原理图及程序介绍
  8. 三星电脑计算机主板图,三星S10E+拆解图文教程
  9. 电力系统通信与网络技术/智能变电站个人总结
  10. 解析腾讯企业邮箱到自己域名,设置mail的cname