Redis 常用五大数据类型

项目前导 学习笔记

一、redis-string


        string 是 redis 最基本的类型,一个 key 对应一个 value (有点类似字典 Dictionary)。string 可以包含任何数据,最大不能超过 512M

1.1、创建值

	set key value 						----  设置值(value 是字符串, 且重复设置可覆盖):set age 18
	get key 							----  获取值:get age
	mset key value [key value ...] 		----  设置多个值(注意键值对一一对应): mset age 18 sex 1 name li
	mget key [key ...] 					----  获取多个值:mget name age sex
	expire key second					----  设置某值几秒后过期:expire name 3
	setex key second value 				----  set 与 expire 结合设置:setex class 10 1
	append key value 					----  添加字段(在后面添加字符串):append age 666
	del key 							----  删除:del sex
	strlen key 							----  返回字符串长度:strlen name

1.2、数值计算

	incr key  							----  增加:incr age
	decr key 							----  减少:decr age
	incrby key increment  				----  制定增加多少:incrby age 5
	decrby key increment  				----  制定减少多少:decrby age 5

1.3、值的范围操作

	getrange age 1 -1  	----  获取指定区间范围内的值, 类似 between ... and ... 的关系
	setrange age 1 22 	----  从第几位开始替换, 下标从零开始(当开始位超出字符串长度时, 会用 \x00 代替中间缺失位)
	
	# 从 0 到 -1 表示全部



二、redis-list(单值多value)


        列表(list)是简单的字符串列表,按照插入顺序排序,可以添加一个元素列表的头部(左边)或者尾部(右边),它的底层实际是个 链表

2.1、lpush、rpush、lrange

	# 从链表左边加入, 结构为 倒序排列
	lpush list01  1 2 3 4 5  
	
	# 从链表右边加入, 结构为 正序排列
	rpush list02  1 2 3 4 5 

	# 获取链表指定长度的值( 0  -1 表示全部 )
	lrange  list01  0  -1 

2.2、lpop、rpop

	# 移除最左, 删除元素 5
	lpop list01 5
	
	# 移除最右, 删除元素 1
	rpop list01 1

2.3、lindex

	# 看一下
	lrange list01 0 -1
	
	# 按照索引下标获得元素(下标从 0 开始)
	lindex list01 1

2.4、llen

	# 求列表长度
	llen list01

2.5、lrem

	# 删 N 个 value , 在 list01 中删除 2 个 1
	# 遍历着删除
	llen list01 2 1

2.6、ltrim

	# ltrim key start stop 
	# 截取指定范围的值后在赋值给 key
	# 截取 list01 从 0 到 2 的数据在重新赋值给 list01
	ltrim list01 0 2

2.7、lset

	# lset key index value
	# 将 key 的第 index+1 位替换成 value
	# 将 list01 中第一位换成 x
	lset list01 0 x 

2.8、linsert

	# lset before/after pivot value
	# 在 key 的 某值 前/后 加 value
	
	# 在 list01 的 x 之前加字段 py
	linsert  list01  before  x  py

	# 在 list01 的 x 之后加字段 thon
	linsert  list01  after  x  thon

2.9、rpoplpush

	# rpoplpush source destination  
	# 将 source 中最后一个压入 destination 中第一位
	lrange list01 0 -1
	lrange list02 0 -1
	rpoplpush list1 list2



三、redis-Hash


        Hash 是一个键值对集合,是一个 string 类型的 field 和 value 的映射表,Hash 特别适合存储 对象

3.1、基本操作

	hset user id 11						----  设值
	hget user id 						----  取值
	hmset user id 1 name li age 18		----  设多个值
	hmget user id name age  			----  取多个值
	hgetall user 						----  取全部键与值
	hdel user id   						----  删除键及对应数据

3.2、hlen key

	# 求长度 
	hmset customer id 2 name haha
	hlen customer 

3.3、hexists key

	# key 里是否存在某键值对(不存在返回 0, 存在返回 1)
	hexists age
	hexists customer 

3.4、hkeys、hvals

	# 取所有键
	hkeys user
	
	# 取所有值
	hvals user



四、redis-set(不重复的)


        set 是 string 类型的无序集合。

4.1、sadd、smembers、sismember

	sadd set01 1 2 2 3 3  				----  创建并集合并添加数据, 自动去重
	smembers set01   					----  得到 set01
	sismember set01 10  				----  判断是否存在(存在返回 1, 不存在返回 0)

4.2、scard

	# 获取集合里面的元素个数
	scard set01   

4.3、srem

	# 删除集合中元素, 删除元素 3
	srem set01 3

4.4、srandmember

	# 随机读出几个数(如不指定读取个数, 则默认读 1 个)
	sadd set01 4 7 9 10 6 5 o i 1
	srandmember set01
	srandmember set01 3

4.5、spop

	# 随机删除数据
	sadd set01 4 7 9 10 6 5 o i 1
	spop set01

4.6、smove

	# smove key1 key2 value
	# 将 key1 中的 value 移动到 key2 中
	smove set01 set02 2 

4.7、数学集合类

	sadd set01 1 2 3 4 5
	sadd set02 1 2 3 a b
	
	# 差集, 在 set01 中不在 set02 中
	# 返回 4 5 
	sdiff set01 set02   
	
	# 交集, 在 set01 中也在 set02 中
	# 返回 1 2 3
	sinter set01 set02
	
	# 并集
	# 返回 set01,set02 中的值并去掉重复
	sunion set01 set02  



五、redis-Zset(不重复的)


        Zset 是 string 类型的有序集合。因为可以排序,所有一般把用于排序的数据写在 的位置,且只能是数字类型。

5.1、zadd、zrange

	# 如记录分数(分数 名字)
	zadd zset01 100 v1 70 v2 90 v3 95 v4 80 v5

	# 读取排序后的值
	zrange zset01 0 -1 

	# 读取全部的键与值, 在后面添加 ( withscores )
	zrange zset01 0 -1 withscores 

5.2、zrangebyscore

	# zrangebyscore key start end
	# 根据开始, 结束位置来取值
	zrangebyscore zset01 50 90

	# 表示不包含结束位置取值
	zrangebyscore zset01 60 (100
	
	# 取出来的值分页, 在后面添加 ( limit 下标 条数 )
	# 从第 1 条开始截取, 每页 2 条
	zrangebyscore zset01  60 100  limit  0 2
	zrangebyscore zset01  60 100  limit  2 2
	zrangebyscore zset01  60 100  limit  4 2

5.3、zrem

	# zrem key value
	# 删除 value 对应的键值对
	zrem zset01 v4  

5.4、zcard、zcount、zrank

	zcard   zset01    					----  求 zset01 的总条数
	zcount  zset01  80  90  			----  求 80-90 的条数
	zrank   zset01  v2   				----  返回 value 对应的下标, 从 0 开始
	zrank   zset01  v1
发布了140 篇原创文章 · 获赞 1 · 访问量 5548

猜你喜欢

转载自blog.csdn.net/qq_43621629/article/details/104733523