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
上一篇下一篇

猜你喜欢

热点阅读