Redis常用命令
2019-05-04 本文已影响0人
g才华横溢
字符串
设置字符串键值对
规则
set [key]键 [value]值
示例
set name1 boy
批量设置字符串键值对
规则
mset [key]键 [value]值 ...
示例
mset name1 boy name2 girl name3 unkonw
获取字符串
规则
get [key]键
示例
get name1
批量设置字符串
规则
mget [key]键 ...
示例
mget name1 name2 name3
【过期和set命令扩展】
规则
expire [key]键 [seconds]秒
示例
expire name 5 #5秒后过期
设置字段的时同时设置过期时间
规则
setex [key]键 [seconds]秒 [value]值
示例
setex name 5 codehold
检查值是否存在如果不就实行set
规则
setnx [key]键 [value]值
示例
setnx name codehold
删除设置的值
规则
del [key]键
示例
del codehold
[计数]
如果value值是一个整数,还可以对它进行自增操作。自增是有范围的,它的范围在signed long 的最大值和最小值之间,超出这个范围,redis会报错
规则
incr [key]键 #每次自增1
incrby [key]键 [integer]有符号整数(整数负数均可)
示例
set age 30
incr age #每次自增1
incrby age 5 #必须设置参数,必须为整数
incrby age -5 #必须设置参数,必须为整数
list(列表)
向队列右侧插入数据
规则
rpush [key] [value]...
示例
rpush books golang php python java
向队列左侧插入数据
规则
lpush [key] [value]...
示例
lpush python php java golang perl
获取队列的长度
规则
llen [key]
示例
llen books
将左边第一个元素移出队列(队列):先进先出
规则
lpop [key]
示例
lpop books
将右边第一个元素移出队列(栈):先进后出
规则
rpop [key]
示例
rpop books
根据下标取出链表中的数据
算法复杂度 O(n) 慎用
此命令会根据队列中数据的多寡而影响查询性能。
规则
lindex [key] (point)[integer]
示例
lindex books 1
获取链表中所有元素
算法复杂度 O(n) 慎用
此命令会根据队列中数据的多寡而影响查询性能。
规则
lrange [key] [start](integer) [start](integer)
示例
lrange books 0 -1
截取链表中的数据重新保存至被截取的链表中
ltrim [key] (first-point)[integer] (last-point)[integer]
ltrim books 1 -1
ltrim books 1 0 #相当于清空了整个链表,因为区间范围为负
删除链表中的值
算法复杂度O(n)-慎用
lrem books >0 #从表头开始想表尾搜索,移除与value相等的元素,数量为count
lrem books <0 #从表尾开始想表头搜索,移除与value相等的元素,数量为“count”的绝对值
lrem books =0 #移除表中所有与value相等的值
规则
lrem [key]键 [count]删除的数量 [value]值
示例
lrem books 3 java
lrem books -3 java
lrem books 0 java
hash(字典)
创建字典并赋值
规则
hset [key]键 [field]字段名称 [value]值(only-string)
示例
hset books golang "think in golang"
获取字典中的值
规则
hget [key]键 [field]字段
示例
hget books golang
获取字典中所有的键-字段-值
规则
hgetall [key]键
示例
hgetall books
设置字典中多个字段-值
规则
hmset [key]键 [field]字段 [value]值(only-string) ...
示例
hmset books java "effective java" python "learning python" golang "mondern golang programming"
获取字典中多个字段-值
规则
hmget [key]键 [field]字段 ...
示例
hmget books java python golang
给字典中的数值相加指定数值
规则
hincrby [key]键 [field]字段 [value]值
示例
hincrby age 1
set(集合)
向集合中插入数据
规则
sadd [key]键 [value]值 ...
示例
sadd lang python golang java php
从集合中取出数据
因为集合是无序的所以插入和取出的顺序可能并不一致
规则
smembers [key]键
示例
smembers lang
查询某个value是否存在
规则
sismember [key]键 [value]值
示例
sismember lang golang #如果存在会返回1否则返回0
获取集合的长度
示例
scard [key]键
示例
scard language
将值弹出链表
因为链表是无序的所以此操作是随机弹出的
spop language
(zset)有序列表
向集合中添加字段与数据
规则
zadd [key] ([field] [value])...
示例
zadd book 1.0 "think in golang" 2.0 "think in php" 3.0 "think in java"
获取有序集合中的数据(正序)
规则
zrange [key]键 [start](integer)起始位置 [end](integer)结束为止
用法与lrange是一致的
示例
zrange books 0 -1
获取有序集合中的数据(倒序)
规则
zrevrange [key] [start](integer)起始位置 [end](integer)结束位置
示例
zrevrange books 0 -1
统计有序集合中队列的长度
规则
zcard [key]键
示例
zcard book
返回成员的权重值/分值
会返回键的值,返回的类型是字符串,由于有序队列中的内容都是唯一的,所以返回的键可以当做权重使用。
规则
zcore [key]键 [value](member)成员值
示例
zscore books "think in golang"
返回有序集合成员的索引(按分值从小到大排序)
如果获取的是有序集合的成员值那么返回索引值,如果不是返回nil
规则
zrank [key]键 [value](member)成员值
示例
zrank book "think in golang"
根据分值遍历索引内容
规则
zrangebyscore [key]键 [min](integer/float)最大值 [max](integer/float)最小值
redis中使用 inf 表示无穷大的意思,并且无穷大是可以带有符号的 (inf标识正数,-inf表示负数)
示例
zrangebyscore books 0 inf #正数无穷大
zrangebyscore books -inf 10 #负数无穷大
删除有序队列中的值
删除的数据不存在返回(integer)0,存在返回(integer)1
示例
zrem [key]键 [value](member)值 ...
示例
zrem books "think in java"
过期时间
返回为元素设置的过期时间的剩余时间
返回为数据设置的过期时间,返回的形式为毫秒(milliseconds)
规则
ttl [key]键
示例
ttl books