一.基本命令

#查看所有键
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

七.管道

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

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. 矩阵微分(matrix derivatives)

    关于矩阵求导,得到的导数则是矩阵形式:关于矢量求导,得到的导数则是矢量形式:关于标量求导,得到的仍是标量形式.也即关于谁求导,得到的导数形式便和谁的维度信息一致. fx = f(x) grad = n ...

  2. windows 下 TensorFlow(GPU 版)的安装

    windows 10 64bit下安装Tensorflow+Keras+VS2015+CUDA8.0 GPU加速 0. 环境 OS:Windows 10,64 bit: 显卡:NVIDIA GeFor ...

  3. Android GPS获取当前位置信息

    package com.example.gpstest; import org.apache.http.util.LangUtils; import android.content.Context; ...

  4. Oracle 如何删除掉一个用户下的所有对象

    create or replace procedure drop_all as cursor cur_obj is select uo.OBJECT_NAME, uo.OBJECT_TYPE from ...

  5. python 教程 第二十章、 数据库编程

    第二十章. 数据库编程 环境设置 1).安装MySQL-python http://www.lfd.uci.edu/~gohlke/pythonlibs/ MySQL-python-1.2.3.win ...

  6. IME输入法编程心得

    原文:IME输入法编程心得 posted @ 2012-11-30 00:42 from [FreedomShe] 自然语言处理的输入法作业成品没有做出来,但不想再在蛋疼的Win32上面耗费时间了,整 ...

  7. 短暂聊天VS温馨提示

    介绍 作为一个合作格该程序猿,使用的开发工具的熟练使用是我们必须掌握的. 而作为一名优秀的程序猿.我们不仅要能熟练的使用.并且还要去高效的使用. 而作为.Net平台专门定制的开发工具VS那当然是我们必 ...

  8. Android Fragment——详细解释

    1.Fragment概述 在一个Activity中. Fragment代表UI的一个部分或者一个行为.一个Activity能够结合多个Fragment对象,也能够在多个activity中使用同样Fra ...

  9. wpf Content数据绑定StringFormat起作用的原理和解决

    原文:wpf Content数据绑定StringFormat起作用的原理和解决 <Window x:Class="WpfOne.Bind.Bind6" xmlns=" ...

  10. SwiftCafe 咖啡时光 - 了解 Swift 中的闭包

    闭包(Closure) 是现代开发语言的必备特性,极大的提高了我们的开发效率. 关于闭包,你可以把它理解为一种特殊的变量或对象.简而言之,我们通常的对象,里面存储的是变量或对象的值,而闭包里面存储的是 ...