一.基本命令

  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. 4 DDD里面的界限上下文

    1 界限上下文概念的出现 当开发一个电子商务系统的时候,会给系统划分很多子域,销售子域是核心子域,此外还有物流子域,商品子域等支撑子域.在这些子域里面,一个商品product在销售子域和商品子域里面外 ...

  2. C ++ 17 技术上已经完成,C ++ 20 也在路上(有路线图)

    在前不久结束的冬季 ISO C ++标准会议(Kona)上,C ++ 17 宣布在技术上已完成,仅剩下一些 ISO 相关的繁文缛节,即将提交至最终的 ISO 投票表决.该会议由 Plum Hall 和 ...

  3. 脚本 启动/停止 jar包服务

    windows (.bat): @set port=8692 @echo %port% for /f "tokens=5" %%i in ('netstat -aon ^| fin ...

  4. rc-form(翻译)

    原地址:https://npm.taobao.org/package/rc-form rc-form React 高阶表单控制组件.       开发 npm install npm start op ...

  5. web开发中../、./、/的区别

    原文:web开发中../.././的区别 最近在业余时间慢慢玩起了网站开发,觉得挺有意思的.在开发过程中,老是分不清 ../.././三者之间的区别,也老是弄混,最后仔细搜索研究了一下,现在终于懂了. ...

  6. windows下启动redis

    解决方案 使用现成的基于windows的redis程序 github上有许多封装好的基于windows的redis程序,可以直接使用,但是版本更新不及时比如: https://github.com/M ...

  7. “Rsync” could not be found on your PATH

    Vagrant with VirtualBox on Windows10: “Rsync” could not be found on your PATH 使用agrant安装系统时,遇到的错误提示: ...

  8. Windows 10开发基础——指针事件和操作事件(一)

    主要内容: 1.指针事件 2.操作事件 1.指针事件 指针事件由各种活动输入源引发,包括触摸.触摸板.笔和鼠标(它们替代传统的鼠标事件).指针事件基于单一输入点(手指.笔尖.鼠标光标),但不支持基于速 ...

  9. C、C++笔记

    2017年6月 阅读书籍<C和指针> #if 0 #endif 比注释掉代码好.(<C和指针>2017.06.07) 全局变量和全局静态变量的区别 1)全局变量是不显式用sta ...

  10. 微信小程序把玩(十一)icon组件

    原文:微信小程序把玩(十一)icon组件 这些是提供的所支持的图标样式,根据需求在此基础上去修改大小和颜色. 主要属性: 使用方式: wxml <!--成功图标--> <icon t ...