Redis五大数据类型

一. String(字符串)

​ string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M。

常用指令:

set k1 v1
get k1
del k1				//删除键k1
append k1 abc		//在k1的value后追加abc,get k1 结果为v1abc
strlen k1			//获取k1的value字符串的长度

incr				//自增,要求值为数字
incrby 5			//自增5
decr				//自减
decrby 5			//自减5

getrange:获取指定区间范围内的值,类似between......and的关系从零到负一表示全部
getrange key 0 -1
setrange:设置指定区间范围内的值,格式是setrange key 具体值

setex 键 过期时间(秒) 真实值	//添加键值对,并指定过期时间
setnx k1 100				//如果不存在对应的键,则添加键值对,如果存在,则不添加
mset:同时设置一个或多个 key-value 对 mset k1 v1 k2 v2 k3 v3
mget:获取所有(一个或多个)给定 key 的值。 mget k1 k2 k3
getset:将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
		简单一句话,先get然后立即set

二. List

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

常用指令:

lpush list1 1 2 3 4 5		//从左往右插入,
rpush list2 1 2 3 4 5		//从右往左插入, 
lrange list1				//从左往右输出
输出结果:5 4 3 2 1
lpop list1					//弹出k1列表最左边第一个值
rpop list1					//弹出k1列表最右边第一个值
lindex list1 1				//按照索引下标获得元素(从上到下)
llen list1					//获得list1长度
lrem list1 2 1				//从左往右删除list1中2个值为1的元素,返回实际删除的个数
lrem list1 0//表示删除全部指定的值
ltrim list1 start stop		//截取指定范围的值在赋值给list1
rpoplpush list1 list2		//将list1右边第一个元素弹出,并压入到list2左边
lset list1 2 abc			//将list1左边第二个值(从0开始)设置为abc
linsert key  before/after 值12 	//在值1前或者值1后添加值2

性能总结:

它是一个字符串链表,left、right都可以插入添加;
如果键不存在,创建新的链表;
如果键已存在,新增内容;
如果值全移除,对应的键也就消失了。
链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了

三. Hash(哈希,类似java里的Map)

Hash(哈希)
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
类似Java里面的Map<String,Object>

常用指令:

hset stu1 name zhangsan						//往key值stu1中插入一个键值对
hget stu1 name								//获取键为name的值
>zhangsan
hmset stu2 name lisi age 21					//往key值stu2中插入多个键值对
hmget stu2 name age							//获取多个值
hgetall stu2 								//获取stu2中所有值
hdel stu2 age								//删除stu2中键值为age的键值对
hlen stu2 									//获取stu2的长度
hexists stu2 gender							//判断stu2中是否有gender键
hkeys										//获取hash中的所有属性
hvals										//获取hash中的所有属性值
hincrby										//整形属性值增加
hincrbyfloat								//浮点形属性值增加
hsetnx stu2 k1 v1							// 不存在则添加属性,存在则不添加属性

四. Set

Set(集合)
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的
不能存放重复内容,无序集合

常用指令:

sadd set1 a b c				//如果set1存在,则在set1中添加新成员;如果set1不存在,则创建set1并添加
smembers set1				//查看set1中所有成员
sismember set1 haha			//判断haha是否是set1中的成员
scard set1					//查看set1中的元素个数
srem set1 a					//删除集合中的元素a
srandmember key 某个整数(随机出几个数)	
//从set集合里面随机取出2个
//如果超过最大数量就全部取出,
//如果写的值是负数,比如-3 ,表示需要取出3个,但是可能会有重复值。
    
spop set1 5					//随机弹出5个数
smove set1 set2 a			//将set1中的a移动到set2中
差集:sdiff 在第一个set里面而不在后面任何一个set里面的项
交集:sinter 在第一个set里面且在后面的set里面的项
并集:sunion 在第一个set里面或者在其他set里面的 项

五. Zset

zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

成员相同的话,后面设置的分数会覆盖前面的分数

常用指令:

zadd zset1 10 a 20 b 25 c 30 d 50 e
zrange zset1 0 -1 withscores					//输出zset1中成员和相应分数
zrangebyscore zset1 10 30 withscores			//c查询分数在10到30之间,且包含10和30
zrangebyscore zset1 (10 30 withscores			//查询10到30之间,不包含10
zrangebyscore zset1 20 +inf withscores			//查询大于20的所有,+inf表示无穷
limit作用是返回限制
zrem zset1 b
                     
zcard :获取集合中元素个数
zcount :获取分数区间内元素个数,zcount key 开始分数区间 结束分数区间
zrank: 获取value在zset中的下标位置
zscore:按照值获得对应的分数
                     
zrevrank key values值,作用是逆序获得下标值
zrevrange zset1 0 -1 withscores					//逆序输出
zrevrangebyscore  key 结束score 开始score

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值