Redis学习笔记(二)-----五大数据类型

Redis入门

Redis = Remote Dictionary Server 远程字典服务

基础知识:

  • Redis默认有16个数据库,默认使用的是第0个;
  • Redis是单线程的:Redis是基于内存操作,Redis的瓶颈是机器的内存和网络带宽,cpu不是Redis性能瓶颈;

Redis为什么是单线程还这么快?

  • 误区1:高性能的服务器一定是多线程的?
  • 误区2:多线程一定比单线程效率高?(cpu在进行上下文切换的时候很耗时间)

核心:Redis是将所有的数据全部放在内存中,所以单线程操作效率就是最高的,对于内存系统来说,没有上下文切换效率就是最高的.

String(字符串)

在这里插入图片描述
set key value:添加一个键值对
get key:获取键对应的值
在这里插入图片描述
下面的四个操作都是针对value为Integer的情况
incr key:加一操作
decr key:减一操作
incrby key increment:加increment
decrby key decrement:减decrement
在这里插入图片描述
GETRANGE key start end: 获取区间字符串

在这里插入图片描述
SETRANGE key offset value:替换字符串,从offset开始

在这里插入图片描述
setex key seconds values:设置过期时间
ttl:查看过期时间

  • -1:永不过期
  • -2:已经过期,没有这个key的话也会显示-2
  • 其他:剩余时间

setnx key value:如果不存在再设置value

在这里插入图片描述
keys *:查看所有的key
mset k1 v1 k2 v2 ...:批量添加
msetnx k1 v1 k2 v2 ...:当所有key都不存在时批量添加
mget:批量读取

在这里插入图片描述
getset key value:先读取再添加

List

在这里插入图片描述
lpush key value [value ...]:将value从左到右依次放入list的左边,所以最后放入的在第一个
lrange key start stop:查看list

在这里插入图片描述
rpush key value [value ...]:将value从左向右依次放入list的右边,所以最先放进去的在第一个

在这里插入图片描述
lpop key:移除最左边的
rpop key:移除最右边的

在这里插入图片描述
lindex key index:通过下标获取元素,如果index为负,就从右向左数
在这里插入图片描述
llen key:获取长度
在这里插入图片描述
lrem key count value:从list的最左边依次删除count个value,count为负数时取绝对值

在这里插入图片描述
ltrim key start stop:保留list中[start, stop]区间,上图展示了各种情况

在这里插入图片描述
rpoplpush source destination:将source中的最有元素移出放入destination的最左
在这里插入图片描述
lset key index value:将key中index处的元素替换

在这里插入图片描述
LINSERT key BEFORE|AFTER pivot value:在pivot的前面或者后面插入value,privot不存在返回负一

Set(集合,值不能重复,无序)

在这里插入图片描述

sadd key member [member ...]:添加元素,如果添加了重复的会被忽略
SMEMBERS key:获取所有成员
SISMEMBER key member:判断member是否在key中
scard key:获取数量
SREM key member [member ...]:移除key中的member元素

在这里插入图片描述
SRANDMEMBER key [count]:随机抽取count个元素
SPOP key [count]:随机移除count个元素

在这里插入图片描述

SMOVE source destination member:将source中的member元素移到destination中

在这里插入图片描述
SUNION key [key ...]:求几个集合的并集
SDIFF key [key ...]:求几个集合的差集
SINTER key [key ...]:求几个集合的交集

Hash(哈希)

在这里插入图片描述
上图就是hash的结构

在这里插入图片描述
HSET key field value:添加一个键值对到key中,但是我发现也可以添加多个
HMSET key field value [field value ...]:添加多个键值对到key中,但是我不太清楚除了返回值这两者的区别
HGET key field:获取key中的field字段的value
HGETALL key:获取所有的field和value
HDEL key field [field ...]:删除key中的field

在这里插入图片描述
HLEN key:获取长度
HEXISTS key field:判断hash中指定字段是否存在
HKEYS key:获得所有的key
HVALS key:获取所有的value
HSETNX key field value:field不存在时才设置value

ZSet(有序集合)

有序集合zset相对于集合set多了一个标志,根据标志排序

在这里插入图片描述
-inf:负无穷
+inf:正无穷
zadd key [NX|XX] [CH] [INCR] score member [score member ...]:添加数据到集合中
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]:升序显示,显示[min,max]之间的数据, withscores为可选参数是否显示标志, limit offset count显示的数据量

在这里插入图片描述

ZREM key member [member ...]:删除member

在这里插入图片描述
ZCARD key:获取有序集合的长度

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值