redis基本命令

http://kaito-kidd.com/2020/09/09/how-i-learned-redis/

学会基础数据类型的用法。每种数据类型,适用于什么场景,客户端操作、redisTemplate操作、jedis操作

string
元素类型可以是string/int/float,适用于关系型数据库中的大部分场景。图片,字节流,等都可以被存储,取得时候进行但序列化

选库,一共16个,不选为0
select 15

设置成功返回ok
set name lg
总成功返回ok
mset user lg age 12
mget user age

del age
设置现在的。返回原来的,无返回null
getset age 11

设置age=11过期时间60秒。如果不存在直接设置,如果存在,覆盖原来的,返回ok
setex age 60 11
ttl age
exists age

不存在的时候设置成功。 成功返回1 失败返回0
setnx age 11

返回字符串长度,不存在返回0
strlen age

以毫秒设置过去时间
psetex age 1111 111
pttl age

Redis Incrby 命令将 key 中储存的数字加上指定的增量值。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
incr age
incrby age 22
incrbyfloat age 0.2
dcre age
dcreby 5

如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
像str一样在后面添加
append age 111

hash object(key-value)。kv形式的value,适合存储对象(table)
HMSET myhash field1 “Hello” field2 “World”
HSET myhash field1 “foo” filed2 “22”
HDEL myhash field1
HDEL myhash field3

HEXISTS myhash field1
hget myhash filed2
返回所有的k-v
hgetall myhash

Hincrby 命令用于为哈希表中的字段值加上指定增量值。
增量也可以为负数,相当于对指定字段进行减法操作。
如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。
对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。
本操作的值被限制在 64 位(bit)有符号数字表示之内。
HSET myhash field 5
HINCRBY myhash field 1
HINCRBY myhash field -1
HINCRBY myhash field -10

HINCRBYFLOAT mykey field 0.1
HINCRBYFLOAT mykey field -5
HINCRBYFLOAT mykey field 2.0e2

HKEYS myhash
kv的个数
HLEN myhash
HMGET myhash field1 field2 nofield

设置成功,返回 1 。 如果给定字段已经存在且没有操作被执行,返回 0 。
1
HSETNX myhash field1 “foo”
0
HSETNX myhash field1 “bar”

一个包含哈希表中所有值的列表。 当 key 不存在时,返回一个空表。
HVALS myhash

list 队列,阻塞队列,可用于消息的刷新,例如公众号发布新文章提醒关注的人
按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
RPUSH mylist “hello”
RPUSH mylist “foo” “bar2”
列表不存在时操作无效
RPUSHX mylist2 “bar” “bar2”
LPUSH
列表不存在时操作无效
LPUSHX

指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推
“hello”
“foo”
LRANGE mylist 0 1

“hello”
“foo”
“bar”
LRANGE mylist 0 -1
LRANGE mylist -3 2

让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
LTRIM mylist 1 -1

除列表的最后一个元素,并将该元素添加到另一个列表并返回
RPOPLPUSH mylist myotherlist

列表 key 不存在时,返回 nil
RPOP mylist
LPOP mylist

指定位置设置值,没有rset
LSET mylist 0 “bar”

长度
LLEN list1

0
DEL list1 list2
若没有阻塞五秒。超时时间若超过redis最大连接时间,可能出问题
RPUSH list1 a
BRPOP list1 5
BRPOP list1 5

任意一个list有返回,则这个命令不会被阻塞
RPUSH list1 a b c
BRPOP list1 list2 5

set 不重复的集合,可用于人物抽奖,在集合中随机弹出几个
SADD myset “hello”
SADD myset “foo” 22
SMEMBERS myset

返回数量
SCARD myset

第一个集合与其他集合之间的差异
SDIFF key1 key2

将给定集合之间的差集存储在指定的集合中 myset myset2 入到 destset
SDIFFSTORE destset myset myset2

返回给定所有给定集合的交集
SINTER myset myset2

返回给定集合的并集
SUNION key1 key2

将给定集合的并集存储在指定的集合
SUNIONSTORE key key1 key2

命令判断成员元素是否是集合的成员
SISMEMBER myset1 “hello”

myset1中的"bar" 移动到myset2
SMOVE myset1 myset2 “bar”

移除集合中的指定 key 的一个或多个随机元素,移除后会返回移除的元素
SPOP myset
移动多个,是可以,但它set是无需的!!
SPOP myset 3

返回集合中的或多个随机元素
SRANDMEMBER myset1
SRANDMEMBER myset1 2

移除集合中的一个或多个成员元素
SREM myset1 “hello”

sorted-set 带权重的set,可根据权重排序
ZADD myzset 1 “one”
ZADD myzset 2 “two” 3 “three”
ZADD myzset 1 “uno”

递增显示成员
ZRANGE myzset 0 -1
成员和分数
ZRANGE myzset 0 -1 WITHSCORES

递减显示成员
ZREVRANGE salary 0 -1 WITHSCORES
ZREVRANGEBYSCORE salary +inf -inf
ZREVRANGEBYSCORE salary max min

数量
ZCARD myzset

分数值在 min 和 max 之间的成员的数量
ZCOUNT myzset 1 3

交集
ZINTERSTORE sum_point 2 mid_test fin_test

返回元素排名
ZRANK salary tom

移除一个或多个元素
ZREM page_rank baidu.com bing.com

移除下标 0 至 1 区间内的成员
ZREMRANGEBYRANK salary 0 1

移除所有薪水在 1500 到 3500 内的员工
ZREMRANGEBYSCORE salary 1500 3500

删除当前数据库中的所有数据
flushdb

   删除所有数据库中的数据

flushall

返回有序集中成员的排名,排名以 0 为底,也就是说, 分数值最大的成员排名为0
ZREVRANK salary peter

返回成员分数
ZSCORE salary peter

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值