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

Redis入门

Redis = Remote Dictionary Server 远程字典服务

基础知识:

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

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

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

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

String(字符串)

Redis学习笔记(二)-----五大数据类型_第1张图片
set key value:添加一个键值对
get key:获取键对应的值
Redis学习笔记(二)-----五大数据类型_第2张图片
下面的四个操作都是针对value为Integer的情况
incr key:加一操作
decr key:减一操作
incrby key increment:加increment
decrby key decrement:减decrement
Redis学习笔记(二)-----五大数据类型_第3张图片
GETRANGE key start end: 获取区间字符串

Redis学习笔记(二)-----五大数据类型_第4张图片
SETRANGE key offset value:替换字符串,从offset开始

Redis学习笔记(二)-----五大数据类型_第5张图片
setex key seconds values:设置过期时间
ttl:查看过期时间

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

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

Redis学习笔记(二)-----五大数据类型_第6张图片
keys *:查看所有的key
mset k1 v1 k2 v2 ...:批量添加
msetnx k1 v1 k2 v2 ...:当所有key都不存在时批量添加
mget:批量读取

Redis学习笔记(二)-----五大数据类型_第7张图片
getset key value:先读取再添加

List

Redis学习笔记(二)-----五大数据类型_第8张图片
lpush key value [value ...]:将value从左到右依次放入list的左边,所以最后放入的在第一个
lrange key start stop:查看list

Redis学习笔记(二)-----五大数据类型_第9张图片
rpush key value [value ...]:将value从左向右依次放入list的右边,所以最先放进去的在第一个

Redis学习笔记(二)-----五大数据类型_第10张图片
lpop key:移除最左边的
rpop key:移除最右边的

Redis学习笔记(二)-----五大数据类型_第11张图片
lindex key index:通过下标获取元素,如果index为负,就从右向左数
在这里插入图片描述
llen key:获取长度
Redis学习笔记(二)-----五大数据类型_第12张图片
lrem key count value:从list的最左边依次删除count个value,count为负数时取绝对值

Redis学习笔记(二)-----五大数据类型_第13张图片
ltrim key start stop:保留list中[start, stop]区间,上图展示了各种情况

Redis学习笔记(二)-----五大数据类型_第14张图片
rpoplpush source destination:将source中的最有元素移出放入destination的最左
Redis学习笔记(二)-----五大数据类型_第15张图片
lset key index value:将key中index处的元素替换

Redis学习笔记(二)-----五大数据类型_第16张图片
LINSERT key BEFORE|AFTER pivot value:在pivot的前面或者后面插入value,privot不存在返回负一

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

Redis学习笔记(二)-----五大数据类型_第17张图片

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

Redis学习笔记(二)-----五大数据类型_第18张图片
SRANDMEMBER key [count]:随机抽取count个元素
SPOP key [count]:随机移除count个元素

Redis学习笔记(二)-----五大数据类型_第19张图片

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

Redis学习笔记(二)-----五大数据类型_第20张图片
SUNION key [key ...]:求几个集合的并集
SDIFF key [key ...]:求几个集合的差集
SINTER key [key ...]:求几个集合的交集

Hash(哈希)

Redis学习笔记(二)-----五大数据类型_第21张图片
上图就是hash的结构

Redis学习笔记(二)-----五大数据类型_第22张图片
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

Redis学习笔记(二)-----五大数据类型_第23张图片
HLEN key:获取长度
HEXISTS key field:判断hash中指定字段是否存在
HKEYS key:获得所有的key
HVALS key:获取所有的value
HSETNX key field value:field不存在时才设置value

ZSet(有序集合)

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

Redis学习笔记(二)-----五大数据类型_第24张图片
-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显示的数据量

Redis学习笔记(二)-----五大数据类型_第25张图片

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

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

你可能感兴趣的:(redis)