学习来源:B站黑马程序员免费视频
Docker如何运行和关闭Redis
命令如下:
//运行指令
docker start 你指定的Redis容器名字
//关闭指令
docker stop 你指定的Redis容器名字
docker start 你指定的Redis容器名字
//关闭指令
docker stop 你指定的Redis容器名字
当然,之前所提到的docker run之类的指令也可以运行Redis。
查看Redis命令的官网地址
通过命令行查看Redis命令
//Get a list of commands in <group>
help @<group>
help @<group>
Redis通用命令
- KEYS:查看符号模版的所有key,不建议在生产环境设备上使用
- 用法:KEYS pattern
- DEL:删除一个指定的key
- 用法:DEL key [key …]
- EXISTS:判断key是否存在
- 用法:EXISTS key [key …]
- EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除
- 用法:EXPIPE key seconds
- TTL:查看一个KEY的剩余有效期
- 用法:TTL key
Redis数据结构
- String
- 例如:hello world
- Hash
- 例如:{name:”Jack”, age:21}
- List
- 例如:[A -> B -> C -> C]
- Set
- 例如:{A, B, C}
- SortedSet
- 例如:{A: 1, B: 2, C: 3}
- GEO
- 例如:{A: (120.3, 30.5)}
- BitMap
- 0110110101110101011
- HyperLog
- 0110110101110101011
前五种为基本类型,后三种为特殊类型。
String类型
String类型可分为3类
- int:整数类型,可以做自增、自减操作
- float:浮点类型,可以做自增、自减操作
- string:普通字符串
string类型的常见命令
- SET:添加或者修改已经存在的一个String类型的键值对
- GET:根据key获取String类型的value
- 用法:GET key
- MSET:批量添加多个String类型的键值对
- 用法:MSET key value [key value …]
- MGET:根据多个key获取多个String类型的value
- 用法:MGET key [key …]
- INCR:让一个整型的key自增1
- 用法:INCR key
- INCRBY:让一个整型的key自增并指定步长,例如:incrby num 2 让num值自增2
- 用法:INCRBY key increment
- INCRBYFLOAT:让一个浮点类型的数字自增并指定步长
- 用法:INCRBYFLOAT key increment
- SETNX:添加一个String类型的键值对,前提是这个key不存在,否则不执行
- 用法:SETNX key value
- SETEX:添加一个String类型的键值对,并且指定有效期
- 用法:SETEX key seconds value
Hash类型
Hash类型的常见命令
- HSET:添加或者修改hash类型key的field的值
- 用法:HSET key field value [field value …]
- HGET key field:获取一个hash类型key的field的值
- 用法:HGET key field
- HMSET:批量添加多个hash类型key的field的值
- 用法:HMSET key field value [field value …]
- HMGET:批量获取多个hash类型key的field的值
- 用法:HMGET key field [field …]
- HGETALL:获取一个hash类型的key中的所有的field和value
- 用法:HGETALL key
- HKEYS:获取一个hash类型的key中的所有的field
- 用法:HKEYS key
- HINCRBY:让一个hash类型key的字段值自增并指定步长
- 用法:HINCRBY key field increment
- HSETNX:添加一个hash类型的key的field值,前提是这个field不存在,否则不执行
- 用法:HSETNX key field value
List类型
List类型的特点
- 有序
- 元素可以重复
- 插入和删除快
- 查询速度一般
常用来存储一个有序数据,例如:朋友圈点赞列表,评论列表等。
List类型的常见命令
- LPUSH/RPUSH:向列表左/右侧插入一个或多个元素
- 用法: LPUSH/RPUSH key element [element …]
- LPOP/RPOP:移除并返回列表左/右侧的第一个元素,没有则返回nil
- 用法:LPOP/RPOP key [count]
- LRANGE:返回一段角标范围内的所有元素
- 用法:LRANGE key start stop
- BLPOP/BRPOP:与LPOP/RPOP类似,只不过在没有元素时等待指定时间,而不是直接返回nil
- 用法:BLPOP/BRPOP key [key …] timeout
Set类型
Set类型的特点
- 无序
- 元素不可重复
- 查找快
- 支持交集.并集.差集等功能
Set类型的常见指令
- SADD :向set中添加一个或多个元素
- 用法:SADD key member [member …]
- SREM: 移除set中的指定元素
- 用法:SREM key member [member …]
- SCARD: 返回set中元素的个数
- 用法:SCARD key
- SISMEMBER:判断一个元素是否存在于set中
- 用法:SISMEMBER key member
- SMEMBERS:获取set中的所有元素
- 用法:SMEMBERS key
- SINTER key1 key2 … :求key1与key2的交集
- 用法:SINTER key [key …]
- SDIFF key1 key2 … :求key1与key2的差集
- 用法:SDIFF key [key …]
- SUNION key1 key2 ..:求key1和key2的并集
- 用法:SUNION key [key …]
SortedSet类型
SortedSet类型的特点
- 可排序
- 元素不重复
- 查询速度快
SortedSet类型常见命令
- ZADD:添加一个或多个元素到sorted set ,如果已经存在则更新其score值
- 用法:ZADD key [NX|XX] [GT|LT] [CH] [INCR] score member [score member …]
- ZREM:删除sorted set中的一个指定元素
- 用法:ZREM key member [member …]
- ZSCORE: 获取sorted set中的指定元素的score值
- 用法:ZSCORE key member
- ZRANK:获取sorted set 中的指定元素的排名(默认升序)
- 用法:ZRANK key member [WITHSCORE]
- ZCARD:获取sorted set中的元素个数
- 用法:ZCARD key
- ZCOUNT:统计score值在给定范围内的所有元素的个数
- 用法:ZCOUNT key min max
- ZINCRBY:让sorted set中的指定元素自增,步长为指定的increment值
- 用法:ZINCRBY key increment member
- ZRANGE:按照score排序后,获取指定排名范围内的元素
- 用法:ZRANGE key start stop [BYSCORE|BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
- ZRANGEBYSCORE:按照score排序后,获取指定score范围内的元素
- 用法:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
- ZDIFF\ZINTER\ZUNION:求差集\交集\并集
- 用法
- ZDIFF numkeys key [key …] [WITHSCORES]
- ZINTER numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MA
X] [WITHSCORES] - ZUNION numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MA
X] [WITHSCORES]
- 用法
Redis的key的格式
Redis的key允许有多个单词形成层级结构,多个单词之间用’:’隔开,格式如下:
层级一:层级2:层级3:id