一.基本命令

#查看所有键
keys * #查看指定键
keys key #查看模糊键
keys ke*
keys ke?
keys ke[a-z]
keys ke\? #判断键是否存在
exists key #查看键类型
type key #清空所有
flushall

二.数据类型相关命令

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

# 增/改
set key
mset k1 k2 k3 # 删
del key
del k1 k2 k3 # 查
get key
mget k1 k2 k3 # 统计
strlen key # 加1
incr key # 加n
incr key n # 增加内容(key不存在会创建)
append key xxx

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

# 增:把一条用户信息保存为散列数据
hset user name Tom
hset user age 20 # 改:名字存错了,重新存
hset user name Haha # 查:查看结果
hget user name # 检查name字段是否存在:如果user中没有name,上一步会报错
hexists usr name # 忘记user中还有哪些字段?
hkeys user
hvals user # 删掉user中的age
hdel user age # 删掉整个user
del user # 在加一条数据,但是之前的增加数据太麻烦了?
hmset user name tom age 20 # 查看数据
hmget user name age # 上面的查看数据还是太麻烦?
hgetall user # 年纪加10岁
hincrby user age 10

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

# 增
lpush number 1 2 3 4 5 # 查
lrange number 0 -1 #从第一个索引查询到最后一个索引
lindex number 0 # 查询指定索引的值 # 改
lset number 0 9 # 把列表中的索引为0的值改成9
linsert number before 9 111 # 在9的前面插入111
linsert number after 9 222 # 在9的后面插入222 # 删
lpop number
rpop number
lrem number count value
ltrim number0 9 # 把source列表的最后一个元素添加到dest列表的左边
rpoplpush source dest # 统计
llen number

  4.集合

# 增/改
sadd myset h j k # 查
smembers myset # 删
spop myset
del myset # 统计
scard myset # 随机取一个
srandmenber myset # 交集
sinter set1 set2 # 并集
sunion set1 set2 # 差集
sdiff set1 set2
sdiffstore storeset set1 set2

  5.有序集合

# 增/改
zadd userscore 100 h1 200 h2 50 h3 30 h4 70 h5
zadd userscore 120 h6 # 查
zrange userscore 0 -1
zscore userscore h1 zrange userscore 0 3 # 按照分数从小到大排序返回索引 0-3 中的元素
zrange userscore 0 3 withscores zrangebyscore userscore 10 50 # 按照分数从小到大排序返回分数为 10-50 中的元素
zrangebyscore userscore 10 50 withscores
zrangebyscore userscore 10 50 withscores limit 1 3 zrevrange # 用于倒序
zrevrangebyscore # 用于倒序 # 删
zrem userscore h1 h2
zremrangebyrank userscore 1 2 # 删除排名1到2的元素 #统计
zcard userscore
zcount userscore 10 20 统计指定范围分数内的元素个数 #加减分
zincrby usrscore -50 h1

三.事务

multi
...
exec

四.生存时间

# 只有set操作会影响生存时间
# 设置过期时间
set name tom
expire name 10
expireat name 时间戳 # 剩余过期时间
ttl name # 毫秒级
pexpire name 3000
pexpireat name 毫秒时间戳

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

五.排序

  sort命令

六.消息通知

    1.队列:

      好处:松耦合,易扩展

      实现:   

# 伪代码
lpush tasks t1 loop
task = rpop tasks
if task
exec task
else
wait 1 second

    优先级实现:

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

    2.发布/订阅:

# redis实例---发布
publish channel.a hihihi #redis实例---订阅
subscribe channel.a

七.管道

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

最新文章

  1. FFT 快速傅里叶变换浅析
  2. 利用Github Pages生成一个快速访问的网址,展示自己的项目
  3. highCharts的多图导出
  4. 有关segue的简介
  5. 一句话概括下spring框架及spring cloud框架主要组件
  6. destoon 深度整合discuz x2 UC 之免邮箱二次验证
  7. poj 3469
  8. netty实现消息转发服务
  9. android JNI处理图片的例子
  10. 如何判断img标签是否有src属性
  11. 关于Html5发展和应用前景
  12. java验证码生成
  13. python数据可视化
  14. npm run dev 报错 run `npm audit fix` to fix them, or `npm audit` for details
  15. [转] webpack3最新版本配置研究(五) devtool,webpack-dev-server,CommonsChunkPlugin
  16. yii中通过HTTP post接收
  17. windows 同时启动多个Tomcat 控制台日志(startup.bat)输出到指定文件中
  18. 关于bfs时间轴
  19. [LeetCode] 数学计算模拟类问题:加法,除法和幂,注意越界问题。题 剑指Offer,Pow(x, n) ,Divide Two Integers
  20. Problem C: 深入浅出学算法004-求多个数的最小公倍数

热门文章

  1. TCP协议是如何保证可靠传输的【经典】
  2. Python Tricks(二十一)—— 排列组合的计算
  3. 简明Python3教程 12.问题解决
  4. BS学习概述
  5. 【Java】【Flume】Flume-NG阅读源代码AvroSink
  6. WPF: FishEyePanel/FanPanel - 自定义Panel
  7. Qt 制作透明背景图片与裁剪图片(很实用)
  8. 关于WPF XAML 中 Trigger的反向ExitActions
  9. thinkphp5 的一些笔记
  10. JS如何为iframe添加onclick事件