redis基础使用方法

1 篇文章 0 订阅
1 篇文章 0 订阅

redis

五种数据类型

string(字符串),hash(哈希),list(列表),set(集合)及sortset(有序集合)

1) string

字段名称字段说明例子异常
set设置缓存set name jack;
get获取缓存get name;
getset获取并设置缓存最新值getset name tom;
del删除keydel name;
incr数值自增1 (初始值为0)incr age若设置非整型的key,将会报错
decr数值自减1 (初始值为0)decr age若设置非整型的key,将会报错
incrby根据设定的数字增加 (初始值为0)incrby age 6;
decrby根据设定的数字减值 (初始值为0)decrby age 6;
append字符串拼接 (未设置的key,效果等同于set)append name tom;

2) hash (存储map结构)

主要用于存储对象关系

字段名称字段说明例子异常
hset设置单个属性hset userinfo_1 name jack;
hmset设置多个属性hset userinfo_1 name jack age 25;
hget获取单个属性hget userinfo_1 name;
hmget获取多个属性hmget userinfo_1 name age;
hgetall获取所有属性hmget userinfo_1;
hkeys获取所有属性的健名hkeys userinfo_1;
hvals获取所有属性的健值hvals userinfo_1;
hexists判断某个属性是否存在hexists userinfo_1 name;
hincrby增加属性值 (初始值为0)hincrby userinfo_1 age 2若设置非整型的key,将会报错
hlen获取所有属性数量hlen userinfo_1;
hdel删除单个属性hdel userinfo_1 name;
del删除整个keydel userinfo_1;

3) list (有序,元素可重复。此处涉及到0,-1等数值的都为索引下标)

主要用于消息队列操作,秒杀等

字段名称字段说明例子异常
lpush将一个或多个值插入到列表头部lpush list a b c;
lpushx将一个值插入到已存在的列表头部lpushx list akey不存在将会报错
rpush将一个或多个值插入到列表尾部rpush list a b c;
rpushx将一个值插入到已存在的列表尾部rpushx list akey不存在将会报错
lpop移出并获取列表的第一个元素lpop list;
rpop移出并获取列表的最后一个元素rpop list;
llen获取列表中元素的数量llen list;
lrem移除列表中的元素从头部移除2个值为a的元素 lrem list 2 a
从尾部移除2个值为a的元素 lrem list -2 a
移除全部值为a的元素 lrem list 0 a
;
LTRIM对一个列表进行修剪,只保留指定区间内的元素,不在指定区间之内的元素都将被删除。LTRIM list 0 -2
(0为第一个,-1为最后一个)
;
lset通过索引设置列表元素的值lset list 0 a;
linsert before在列表的元素前插入元素在元素a前插入x元素 linsert list before a x;
linsert after在列表的元素后插入元素在元素a后插入x元素 linsert list after a x;
lrange获取列表指定范围内的元素lrange list 0 -1 (-1表示最后一个元素);
lindex通过索引获取列表中的元素lindex list 2 (-1表示最后一个元素);
rpoplpush移除列表的最后一个元素,并将该元素添加到另一个列表rpoplpush list list2
(重要:队列消费时可能没有消费成功,这时可以加入到另一个备份队列,此时消费备份队列即可。反之如果消费成功则把备份队列删除即可)
;

4) set (无序集合,元素不能重复)

主要用于标签,社交,唯一验证,差集,交集,并集等操作

例如查询用户是否同时够买了2个产品,a产品与b产品,这时使用交集即可,集合中存储用户id

字段名称字段说明例子异常
sadd向集合添加一个或多个成员sadd myset a b c;
smove将元素从一个集合转移到另一个集合中smove myset myset2 a;
smembers返回集合中的所有成员smembers myset;
scard返回集合中的成员数量scard myset;
srandmember返回集合中一个或多个随机数srandmember myset;
spop移除并返回集合中的一个随机元素spop myset;
sismember判断元素是否存在sismember myset;
sdiff返回第一个集合与其他集合之间的差异sdiff myset myset1;
sdiffstore集合中差集存储到新集合中sdiffstore myset myset1 myset2;
sinter返回所有集合的交集sinter myset myset1;
sinterstore集合中的交集存储到新集合中sinterstore myset myset1 myset2;
sunion返回所有集合的并集sunion myset myset1;
sunionstore集合中的并集存储到新集合中sunionstore myset myset1 myset2;
srem移除集合中一个或多个成员srem myset a b;

5) zset (有序集合,元素不能重复)

主要用于排行榜,名次,构建索引数据等场景

withscores 同时展示成员名字及分数,range查询类型都可使用

字段名称字段说明例子异常
zadd添加一个或多个成员,或者更新已存在成员的分数zadd mysort 100 tom 150 jack;
zincrby对指定成员的分数增量zincrby mysort 10 tom (减量可写为负数);
zcount返回指定区间分数的成员数zcount mysort 60 100;
zcard获取集合的成员数zcard mysort;
zrank返回指定成员的索引zrank mysort tom;
zscore返回成员的分数值zscore mysort tom;
zrange通过索引区间返回指定区间内的成员只查询成员名字 zrange mysort 0 -1
查询成员名字及分数 zrange mysort 0 -1 withscores
;
zrevrange通过索引返回指定区间内的成员,分数从高到低排序zrevrange mysort 0 -1;
zrangebyscore通过分数返回指定区间内的成员普通查询 zrangebyscore mysort 60 120
限制查询数量 zrangebyscore mysort 50 100 limit 0 2
;
zrevrangebyscore返回指定分数区间内的成员,分数从高到低排序zrevrangebyscore mysort 100 150;
zrem移除一个或多个成员zrem mysort tom jack;
zremrangebyrank移除中指定排名区间的成员zremrangebyrank mysort 1 2;
zremrangebyscore移除中指定分数区间的成员zremrangebyscore mysort 60 100;
zinterstore交集操作,结果集中成员的分数值是所有集下成员分数值之和zinterstore mysort3 2 mysort1 mysort1;
zunionstore并集操作,结果集中成员的分数值是所有集下成员分数值之和zunionstore mysort3 2 mysort1 mysort1;

6) kyes基础操作

字段名称字段说明例子异常
keys *查询所有keykeys *;
keys my*查询my开头的keykeys my*;
ttl返回给定 key 的剩余生存时间ttl key;
expire为给定 key 设置过期时间,以秒计expire key 600;
del删除 keydel key;
exists检查 key 是否存在exists key;
rename修改 key 的名称rename key newkey;
renamenx仅当newkey不存在时,将key改名为newkeyrenamenx key newkey;
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值