一.基本命令

  1. #查看所有键
  2. keys *
  3.  
  4. #查看指定键
  5. keys key
  6.  
  7. #查看模糊键
  8. keys ke*
  9. keys ke?
  10. keys ke[a-z]
  11. keys ke\?
  12.  
  13. #判断键是否存在
  14. exists key
  15.  
  16. #查看键类型
  17. type key
  18.  
  19. #清空所有
  20. flushall

二.数据类型相关命令

  1.字符串:key尽量用【对象类型:属性:值】的规则命名    

  1. # 增/改
  2. set key
  3. mset k1 k2 k3
  4.  
  5. # 删
  6. del key
  7. del k1 k2 k3
  8.  
  9. # 查
  10. get key
  11. mget k1 k2 k3
  12.  
  13. # 统计
  14. strlen key
  15.  
  16. # 加1
  17. incr key
  18.  
  19. # 加n
  20. incr key n
  21.  
  22. # 增加内容(key不存在会创建)
  23. append key xxx

  2.散列:由键 字段 值 组成

  1. # 增:把一条用户信息保存为散列数据
  2. hset user name Tom
  3. hset user age 20
  4.  
  5. # 改:名字存错了,重新存
  6. hset user name Haha
  7.  
  8. # 查:查看结果
  9. hget user name
  10.  
  11. # 检查name字段是否存在:如果user中没有name,上一步会报错
  12. hexists usr name
  13.  
  14. # 忘记user中还有哪些字段?
  15. hkeys user
  16. hvals user
  17.  
  18. # 删掉user中的age
  19. hdel user age
  20.  
  21. # 删掉整个user
  22. del user
  23.  
  24. # 在加一条数据,但是之前的增加数据太麻烦了?
  25. hmset user name tom age 20
  26.  
  27. # 查看数据
  28. hmget user name age
  29.  
  30. # 上面的查看数据还是太麻烦?
  31. hgetall user
  32.  
  33. # 年纪加10岁
  34. hincrby user age 10

  3.列表:双向链表,适合快进快出

  1. # 增
  2. lpush number 1 2 3 4 5
  3.  
  4. # 查
  5. lrange number 0 -1 #从第一个索引查询到最后一个索引
  6. lindex number 0 # 查询指定索引的值
  7.  
  8. # 改
  9. lset number 0 9 # 把列表中的索引为0的值改成9
  10. linsert number before 9 111 # 在9的前面插入111
  11. linsert number after 9 222 # 在9的后面插入222
  12.  
  13. # 删
  14. lpop number
  15. rpop number
  16. lrem number count value
  17. ltrim number0 9
  18.  
  19. # 把source列表的最后一个元素添加到dest列表的左边
  20. rpoplpush source dest
  21.  
  22. # 统计
  23. llen number

  4.集合

  1. # 增/改
  2. sadd myset h j k
  3.  
  4. # 查
  5. smembers myset
  6.  
  7. # 删
  8. spop myset
  9. del myset
  10.  
  11. # 统计
  12. scard myset
  13.  
  14. # 随机取一个
  15. srandmenber myset
  16.  
  17. # 交集
  18. sinter set1 set2
  19.  
  20. # 并集
  21. sunion set1 set2
  22.  
  23. # 差集
  24. sdiff set1 set2
  25. sdiffstore storeset set1 set2

  5.有序集合

  1. # 增/改
  2. zadd userscore 100 h1 200 h2 50 h3 30 h4 70 h5
  3. zadd userscore 120 h6
  4.  
  5. # 查
  6. zrange userscore 0 -1
  7. zscore userscore h1
  8.  
  9. zrange userscore 0 3 # 按照分数从小到大排序返回索引 0-3 中的元素
  10. zrange userscore 0 3 withscores
  11.  
  12. zrangebyscore userscore 10 50 # 按照分数从小到大排序返回分数为 10-50 中的元素
  13. zrangebyscore userscore 10 50 withscores
  14. zrangebyscore userscore 10 50 withscores limit 1 3
  15.  
  16. zrevrange # 用于倒序
  17. zrevrangebyscore # 用于倒序
  18.  
  19. # 删
  20. zrem userscore h1 h2
  21. zremrangebyrank userscore 1 2 # 删除排名1到2的元素
  22.  
  23. #统计
  24. zcard userscore
  25. zcount userscore 10 20 统计指定范围分数内的元素个数
  26.  
  27. #加减分
  28. zincrby usrscore -50 h1

三.事务

  1. multi
  2. ...
  3. exec

四.生存时间

  1. # 只有set操作会影响生存时间
  2. # 设置过期时间
  3. set name tom
  4. expire name 10
  5. expireat name 时间戳
  6.  
  7. # 剩余过期时间
  8. ttl name
  9.  
  10. # 毫秒级
  11. pexpire name 3000
  12. pexpireat name 毫秒时间戳

如何限制redis的最大内存使用和删除策略 

五.排序

  sort命令

六.消息通知

    1.队列:

      好处:松耦合,易扩展

      实现:   

  1. # 伪代码
  2. lpush tasks t1
  3.  
  4. loop
  5. task = rpop tasks
  6. if task
  7. exec task
  8. else
  9. wait 1 second

    优先级实现:

  1. /**
    * 伪代码
  2. * brpop 是一个会阻塞的命令,可以接受多个键 最后一个参数表示超时时间,0则不超时
  3. * 如果三个任务键都没有数据,程序会一直阻塞,一旦其中有一个键有数据,程序就会执行,此特性可以实现优先级。那个任务要优先执行,就推送一下,程序就会立刻执行那个任务
  4. */
  5. lpush one_tasks t1
  6. lpush two_tasks t2
  7. lpush three_tasks t3
  8.  
  9. loop
  10. task = brpop one_tasks two_tasks three_tasks 0
  11. exec task

    2.发布/订阅:

  1. # redis实例---发布
  2. publish channel.a hihihi
  3.  
  4. #redis实例---订阅
  5. subscribe channel.a

七.管道

八.管理(持久化 主从 管理工具 安全)

Redis---学习笔记(更新中)的更多相关文章

  1. Python3学习笔记-更新中

    1.Python概况 2.Anaconda安装及使用 3.Pycharm安装及使用 4.Hello World!!! 5.数据类型及类型转换 6.分支结构 7.循环语句 8.异常

  2. Redis学习笔记~目录

    回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...

  3. Redis学习笔记4-Redis配置详解

    在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...

  4. Redis学习笔记一:数据结构与对象

    1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...

  5. Redis学习笔记(三)Redis支持的5种数据类型的总结

    继续Redis学习笔记(二)来说说剩余的三种数据类型. 三.列表类型(List) 1.介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的一段片段.列表类型内部是 ...

  6. Redis学习笔记(二)Redis支持的5种数据类型的总结之String和Hash

    引言 在Redis学习笔记(一)中我们已经会安装并且简单使用Redis了,接下来我们一起来学习下Redis支持的5大数据类型. 简介 Redis是REmote DIctionary Server(远程 ...

  7. Redis学习笔记(2)——Redis的下载安装部署

    一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...

  8. redis学习笔记(2)

    redis学习笔记第二部分 --配置文件介绍 二,解析redis的配置文件redis.conf常见配置参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通 ...

  9. Redis学习笔记4-Redis配置具体解释

    在Redis中直接启动redis-server服务时, 採用的是默认的配置文件.採用redis-server   xxx.conf 这种方式能够依照指定的配置文件来执行Redis服务. 依照本Redi ...

  10. redis 学习笔记(6)-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

随机推荐

  1. LaTeX —— 特殊符号与数学字体

    1. 特殊符号 ℓ(\ell):用于和大小的 I 和 数字 1 相区分 R(\Re) ∇(\nabla):微分算子 2. 数学字体 mathbb:blackboard bold,黑板粗体 mathca ...

  2. Modbus TCP 示例报文

    调试modbus  tcp 整理百度文库文档如下 <modbus-tcp-报文举例分析> <MODBUSTCP通讯报文> Client request: 19 B2 00 00 ...

  3. MFC和Qt优缺点 (MFC几乎没有优点、全面下风)

    在网上看到的,拿来和大家一起讨论下. 我曾经使用过来开发过软件,我想和大家分享我使用他们时所体会的不同之处. 我并非一个职业作家,这篇文章可能看起来不如专业的杂志和网站上的那么条理清晰.但是,我在这里 ...

  4. Kafka Offset 1

    Kafka Offset Storage   1.概述 目前,Kafka 官网最新版[0.10.1.1],已默认将消费的 offset 迁入到了 Kafka 一个名为 __consumer_offse ...

  5. Next Instruction Access Intent Instruction

    Executing a Next Instruction Access Intent instruction by a computer. The processor obtains an acces ...

  6. java学习笔记(2)——函数

    int a = 1; a = a++; 1,取出a的值1作为a++表达式的值(a++表达式等于1) 2,a增加1变为2 3,执行赋值运算,a++表达式的值再赋给a,a又成为了1. ---------- ...

  7. WPF 路由事件 Event Routing

    原文:WPF 路由事件 Event Routing 1.路由事件介绍 之前介绍了WPF的新的依赖属性系统,本篇将介绍更高级的路由事件,替换了之前的.net普通事件.相比.net的事件,路由事件具有更强 ...

  8. WPF 透明掩码 OpactiyMask

    原文:WPF 透明掩码 OpactiyMask 在WPF中提供了Opacity属性使得元素的所有内容都是透明的.而OpacityMask属性可以使元素的特定区域变成透明. OpacityMask属性接 ...

  9. c# 守护进程,WPF程序自守护

    原文:c# 守护进程,WPF程序自守护 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/lwwl12/article/details/79035246 如何 ...

  10. asp.net (webapi) core 2.1 跨域配置

    原文:asp.net (webapi) core 2.1 跨域配置 官方文档 ➡️ https://docs.microsoft.com/zh-cn/aspnet/core/security/cors ...