Redis常用命令

Redis的常用数据类型:String字符串、List列表、Set集合、Hash哈希、Zset有序集合

1.Redis键的操作

keys * 查看当前库的所有key

exists <key> 判断某个key是否存在

type <key> 查看某个key是什么类型

del <key> 删除指定key数据

unlink <key> 根据value选择非阻塞删除

expire <key> <秒钟> 为指定key设置过期时间

ttl <key> 查看key还有多少秒过期,-1表示永不过期,-2表示已过期

select 0~15 切换数据库

dbsize 查看当前数据库key的数量

flushdb 删除当前数据库的数据

flushall 删除所有数据库的数据

2.Redis字符串操作(字符串的最大长度是512M

 get <key> 查询对应键值

append <key> <value> 将给定的value追加到原值的末尾

stelen <key> 获得值的长度

setnx <key><value>只有在key不存在时,设置key的值

incr <key> 将key中存储的数字值增1,只能对数字值进行操作,如果为空,则新增值为1

decr <key> 将key中存储的数字值减1,只能对数字值进行操作,如果为空,则新增值为-1

incrby/decrby <key> <步长> 将key中存储的数字值增减,自定义步长

redis是单线程+多路IO复用,是原子性的操作,所以不存在多线程运算结果错误问题

mset <key1> <value1> <key2> <value2>……同时设置一个或多个key-value对

mget <key1> <key2> ……同时获取一个或多个value

msetnx <key1> <value1> <key2> <value2> ……当给定的key都不存在时,设置一个或多个

key-value

redis原子性,有一个失败则都失败

getrange <key> <起始位置> <结束位置> 获取值的范围,前包后包,且下标从0开始

setrange <key> <起始值> <value> 在起始位置开始覆盖并写入value的值

setex <key> <过期时间> <value> 在设置键值的同时,设置过期时间,单位秒

getset <key><value> 以新值换旧值,设置新值同时返回旧值

3.List列表(单键多值、双向链表)

lpush/rpush <key> <value1> <value2> <value3>……从左边/右边插入一个或多个值(l代表left,r代表right,push是推的意思,不论从左边插入还是右边插入,先插入的值都是往中间去)

lpop/rpop <key> 从左边/右边吐出来一个值。值在键在,值亡键亡

rpoplpush <key1> <key2> 从<key1>列表右边吐出一个value添加到<key2>列表左边

lrange <key> <start> <stop> 按照索引下标获得元素

lrange <key> 0/-1  0左边第一个,-1 右边第一个,0 -1 代表取所有

lindex <key> <index> 根据索引下标获取元素,从0开始

llen <key> 获得列表长度

linsert <key> before/after <value> <newvalue> 在<value>元素的前边/后边插入一个<newvalue>

lrem <key> <n> <value> 从左边删除n个 value

lset <key> <index> <value> 将列表key下标为<index>的元素替换为<value>

4.集合set(无序、元素不可重复的集合,数据结构是dict,是用哈希表实现的)

sadd <key> <value> 在<key>里添加一个元素(不可重复)

smembers <key> <value> 查询<key>集合里所有的元素
sismember <key> <value> 判断集合<key>是否含有值<value> 有为1 没有为0

scard <key> 返回该集合的元素个数

serm <key> <value1> <value2>……删除集合中的某个元素

spop <key> 随机从该集合中吐出一个值

srandmember <key> <n> 随机从该集合中取出n个值,不会从集合中删除

smove <source> <destination> <value> 把集合中一个值从一个集合移动到另一个集合

sinter <key1> <key2> 返回两个集合的交集元素

sunion <key1> <key2> 返回两个集合的并集元素

sdiff <key1> <key2> 返回两个集合的差集元素(key1中的,不包含key2中的)

5.哈希(类似Java中的map,Redis hash是一个string类型的field和value的映射表,特别适合存储对象)Hash类型当field和value长度短且个数较少时,使用ziplist,否则使用hashtable

hset <key> <field> <value> 给<key>集合中的<field>键赋值<value>

hget <key> <field> 从<key>集合<field>取出<value>

hmset <key1> <field1> <value1> <field2> <value2> …… 批量设置hash的值

hexists <key> <field> 查看哈希表key中,给定域field是否存在

hkeys <key> 列出该hash集合的所有field

hvals <key> 列出该hash集合的所有value

hincrby <key> <field> <increment> 为哈希表key中的域field的值加上增量1 -1

hsetnx <key> <field> <value> 当field不存在时,将哈希表key中的域field的值设置为value 

6.有序集合Zset(zset底层使用了两个数据结构,hash和跳跃表,hash的作用就是关联元素value和权重score,跳跃表的目的在于给元素value排序根据score的范围获取元素列表)

zadd <key> <score1> <value1> <score2> <value2>…… 将一个或多个元素及其评分score值加入到有序集合key当中

zrange <key> <start> <stop> [WITHSCORES] 返回有序集中,下标在<start> <stop>之间的元素,若是0 -1 则是返回全部,带 withscores,可以让分数一起和值返回到结果集

zrangebyscore <key> <min> <max> [withscores] 返回有序集key,所有score值在min和max之间的,包括等于min和max的成员,并按照从小到大递增的顺序依次排列 

zrevrangebyscore <key> <max> <min> [withscores] 同上,但为从大到小排列

zincrby <key> <increment> <value> 为元素的score加上增量

zrem <key> <value> 删除该集合下,指定值的元素

zcount <key> <min> <max> 统计该集合,分数区间内的元素个数

zrank <key> <value> 返回该值在集合中的排名,从0开始

7.Redis6新数据类型Geospatial

geo地理信息的缩写,就是元素的二维坐标,在地图上就是经纬度。

geoadd <key> <longitude> <latitude> <member> [longitude latitude member...]添加地理位置(经度、纬度、名称)

geopos <key> <member> [member...] 获得指定地区的坐标值 

geodist <key> <member1> <member2> [m|km|ft|mi] 获取两个位置之间的直线距离

[m表示单位米(默认),km千米,mi英里,ft英尺]

 (我的坐标是假的,请忽略结果)

 georadius <key> <longitude> <latitude> <radius> [单位]分别代表key,精度,纬度,距离,以给定经纬度为中心,找出某一半径内的元素

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值