-
Notifications
You must be signed in to change notification settings - Fork 20
Redis
目录 start
目录 end|2019-05-09 20:31|
Redis设计与实现 第二版
Redis 设计与实现作者自建网站
- 注册为服务
redis-server --service-install redis.windows.conf --loglevel verbose
- 使用cmder
- cmd 中运行
E:/redis/redis-server.exe E:/redis/redis.windows.conf
- cmd 中运行
- 配置密码
requirepass redis1104
- 客户端登录
auth redis1104
这样不太好做多个redis, 个人不喜欢这种方式
- 安装
apt install redis
- 开启数据库服务
redis-server
- 打开客户端
redis-cli
个人配置步骤:
- 从源码编译: 官网下载源码,src下执行
make
进行编译,编译完成后,复制src目录中的redis-cli redis-server
就可以用了,redis-benchmark
可选,测性能 - 配置文件: 再复制下面的简化配置文件,或者使用源码中根目录下的配置文件自己配置下
- 再创建以下两个脚本就可以便捷的使用redis了
server_redis.sh
basepath=$(cd `dirname $0`; pwd)
echo $basepath
$basepath/redis-server $basepath/redis.conf>redis.log &
client_redis.sh
basepath=$(cd `dirname $0`; pwd)
$basepath/redis-cli -p 6379
字符串就是字节组成的序列 可以放字节串,整数,浮点数
-
set key newval nx
存在则set失败 -
set key newval xx
不存在则set失败 -
incr incrby decr decrby
只要存入的String能被解析为数值,就能执行这些命令: 递增或者递减 -
incr
是原子操作即并发的情况下不会有脏读(可用于主键生成策略) -
getset key val
get旧值并且set新值 -
mset mget
mset key val key val
-
mget key key key
返回值组成的数组
-
exists key
有该值就返回1否则0 -
del key
返回1被删除,0 key不存在 -
type key
返回值的类型 -
expire key secondes
设置或改变超时时间,精度是秒或毫秒-
set key val ex secondes
set时设置超时时间
-
-
persist key
去除超时时间 -
ttl key
查看剩余存活时间 -1表示永久 -2表示没有该key
-
rpush key val val val
右/尾添加元素 lpush是左/头,若表不存在就新建 -
rpushx key value
若表不存在就什么都不做,否则尾插元素 -
rpop key
从list右/尾端中删除元素返回元素值 没有了就返回null -
lrange key 0 -1
取指定长度的list -1表示全部 -
ltrim key 0 2
截取当前的list -
lindex key index
返回偏移量为index的元素(提到偏移量一般都是0开始) -
linsert key BEFORE|AFTER pivot value
- 将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。
- 当 pivot 不存在于列表 key 时,不执行任何操作。当 key 不存在时, key 被视为空列表,不执行任何操作。
- 如果 key 不是列表类型,返回一个错误。
-
lrem key count value
根据参数 count 的值,移除列表中与参数 value 相等的元素。 - 阻塞式的列表弹出命令(block)
队列很有用
blpop
brpop
bpoplpush
-
brpoplpush
阻塞式先右弹再左进
SADD key member [member ...]
-
SCARD key
返回集合 key 的基数(集合中元素的数量)。 -
SDIFF key [key ...]
返回一个集合的全部成员,该集合是所有给定集合之间的差集。不存在的 key 被视为空集。 -
SDIFFSTORE destination key [key ...]
这个命令的作用和 SDIFF 类似,但它将结果保存到 destination 集合,而不是简单地返回结果集。如果 destination 集合已经存在,则将其覆盖。destination 可以是 key 本身。 -
SINTER key [key ...]
返回一个集合的全部成员,该集合是所有给定集合的交集。不存在的 key 被视为空集。当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。 -
SINTERSTORE destination key [key ...]
与sdiffstore类似 -
SISMEMBER key member
判断 member 元素是否集合 key 的成员。 -
SMEMBERS key
获取某Set所有元素 -
SMOVE source destination member
将 member 元素从 source 集合移动到 destination 集合。 SMOVE 是原子性操作。 -
SPOP key
移除并返回集合中的一个随机元素 -
SRANDMEMBER key [count]
如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素 -
SREM key member [member ...]
移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。 -
SUNION key [key ...]
返回一个集合的全部成员,该集合是所有给定集合的并集。 SUNIONSTORE destination key [key ...]
-
SSCAN key cursor [MATCH pattern] [COUNT count]
参考 SCAN 命令
元素是键值对,键是member成员,值是score分值必须是浮点数
-
ZADD 将一个给定分值的成员添加到有序集合里
-
ZCARD 获取有序集合的成员数
-
ZCOUNT min max 计算在有序集合中指定区间分数的成员数
-
ZINCRBY key increment member 自增
-
ZRANGE 根据元素在有序集合中的位置,从有序集合中从小到大获取多个元素
-
zrange name 0 -1 withscores
获取所有并获取分值 -
zrange name 0 3 withscores
获取分数最少的4个键值对
-
-
ZREVRANGE 相反的, 从大到小
-
zrangebyscore 获取有序集合在给定范围中的所有元素
zrangebyscore name 0 200 withscores
-
ZRANK
-
ZREM
-
ZREMRANGEBYRANK
-
ZREMRANGEBYSCORE
-
ZREVRANGEBYSCORE
-
ZREVRANK
-
ZSCORE
-
ZUNIONSTORE
-
zinterstore
进行集合之间的并集(可以看作关系型数据库的多表连接) -
ZSCAN
-
ZRANGEBYLEX
-
ZLEXCOUNT
-
ZREMRANGEBYLEX
(类似Map 嵌套,一个内置的微型redis)
- HDEL 删除散列中指定的K
- HEXISTS
- HGET
- HGETALL
- HINCRBY
- HINCRBYFLOAT
- HKEYS
- HLEN
- HMGET
- HMSET
- HSET
- HSETNX
- HVALS
- HSCAN
- HSTRLEN
- PFADD
- PFCOUNT
- PFMERGE
- GEOADD
- GEOPOS
- GEODIST
- GEORADIUS
- GEORADIUSBYMEMBER
- GEOHASH
-
PSUBSCRIBE pattern [pattern ...]
- 订阅一个或多个符合给定模式的频道。每个模式以 * 作为匹配符,比如 it* 匹配所有以 it 开头的频道( it.news 、 it.blog 、 it.tweets 等等),
- news.* 匹配所有以 news. 开头的频道( news.it 、 news.global.today 等等),诸如此类。
-
PUBLISH channel message
- 将信息 message 发送到指定的频道 channel 。
-
PUBSUB <subcommand> [argument [argument ...]]
- PUBSUB 是一个查看订阅与发布系统状态的内省命令, 它由数个不同格式的子命令组成, 以下将分别对这些子命令进行介绍。
-
PUBSUB CHANNELS [pattern]
列出当前的活跃频道。设置pattern参数就会匹配活跃频道,否则是列出所有频道 -
PUBSUB NUMSUB [channel-1 ... channel-N]
返回给定频道的订阅者数量, 订阅模式的客户端不计算在内。 -
PUBSUB NUMPAT
返回订阅模式的数量。注意, 这个命令返回的不是订阅模式的客户端的数量, 而是客户端订阅的所有模式的数量总和。
-
PUNSUBSCRIBE [pattern [pattern ...]]
- 指示客户端退订所有给定模式。如果没有模式被指定,也即是,一个无参数的 PUNSUBSCRIBE 调用被执行,
- 那么客户端使用 PSUBSCRIBE 命令订阅的所有模式都会被退订。在这种情况下,命令会返回一个信息,告知客户端所有被退订的模式。
-
SUBSCRIBE channel [channel ...]
- 订阅给定的一个或多个频道的信息。
-
UNSUBSCRIBE [channel [channel ...]]
- 指示客户端退订给定的频道。如果没有频道被指定,也即是,一个无参数的 UNSUBSCRIBE 调用被执行,
- 那么客户端使用 SUBSCRIBE 命令订阅的所有频道都会被退订。在这种情况下,命令会返回一个信息,告知客户端所有被退订的频道。
pip install redis 该模块和redis命令的用法几乎一模一样, 上手很快
-
redis文档
python操作redis的库的文档
衍生项目
将redis变为一个简单的web接口
参考博客: 为什么我们做分布式使用Redis?
缓存的场景和应对措施
- 搜索建议
- 发送邮件
-
【 Algorithm 】
-
【 Blog 】
-
【 C 】
-
【 Database 】
-
【 Distributed 】
-
【 FrontEnd 】
- 【 FrontEnd/Frame 】
- 【 FrontEnd/Node 】
- Font
- Hexo
- JavaScript
- LearnPS
- ResponseCode
- SVG
- ViewSolution
- extjs学习笔记
-
【 Functional 】
-
【 Go 】
-
【 Groovy 】
-
【 Java 】
- 【 Java/AdvancedLearning 】
- 【 JavaBasic 】
- 【 JavaCache 】
- 【 JavaCollection 】
- 【 JavaConcurrency 】
- 【 JavaMap 】
- Annotation
- ClassFile
- Collection
- Concurrency
- Deploy
- Exception
- ExtendsAndInterface
- Generics
- IO
- JDBC
- JDKAndJRE
- JMX
- JVM
- Java11
- Java7
- Java8
- JavaNetwork
- JavaReleaseVersion
- JavaWeb
- JvmPerformance
- MQ
- MultipleLanguage
- Proxy
- Reflection
- Serialize
- SyntaxAndType
- Thread
- WebPerformance
- 【 Java/Android 】
- 【 Java/Ecosystem 】
- 【 Java/MSA 】
- 【 Java/Spring 】
- 【 Java/TemplateEngine 】
- 【 Java/Test 】
- 【 Java/Tool 】
- 【 Java/thread 】
- AlibabaJavaStandard
- DesignPattern
- HashMap解析
- Java-NIO
- Java虚拟机
- Log
- MIS
- Quartz
- RESTful
- WebSocket学习笔记
- ZooKeeper学习笔记
- android学习笔记
- 【 Java/AdvancedLearning 】
-
【 Kotlin 】
-
【 Linux 】
- 【 Linux/Alpine 】
- 【 Linux/Arch 】
- 【 Linux/Base 】
- 【 Linux/Centos 】
- 【 Linux/Container 】
- 【 Linux/Debian 】
- 【 Linux/Tool 】
- JavaDevInit
- Linux系统学习
-
【 MyBlog 】
-
【 Python 】
- 【 Python/Tool 】
- Python
- PythonConcurrent
- PythonGUI
- PythonGame
- PythonNet
- PythonOffices
- PythonWeb
- Python基础
- Python核心学习
-
【 Reactive 】
-
【 Rust 】
-
【 Scala 】
-
【 Script 】
-
【 Skills 】
- 【 Skills/Application 】
- 【 Skills/CS 】
- 【 Skills/Cache 】
- 【 Skills/Councurrency 】
- 【 Skills/DevOps 】
- 【 Skills/Document 】
- 【 Skills/Ecology 】
- 【 Skills/Network 】
- 【 Skills/Search 】
- 【 Skills/SoftwareEngineering 】
- 【 Skills/Spider 】
- 【 Skills/Test 】
- 【 Skills/Vcs 】
- 【 Skills/Work 】
- AppManual
- CelebrityQuotes
- Miscellaneous
- Platform
- Problem
- Protobuf
- RegularExpression
- SoftwareDesignEngineer
- Website
-
【 Windows 】