栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

3.Redis五大类型及方法详细介绍

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

3.Redis五大类型及方法详细介绍

1.String类型

1.1 简介:

1.String类型是Redis的最基本的数据类型,一个Redis中的字符串value最多可以是512M
2.String类型是二进制的,表示Redis的String可以包含任何数据,比如jgp图片或者序列化的对象
3.String的数据结构为简单的动态字符串SDS(Simple Dynamic String)是可以修改的字符串,
  内部结构类似于java的Arraylist

1.2 常用命令:

#查看所有的key
keys *       

#添加键值对                      
set key value     
    
#同时设置多个键值对              
mset key1 value key2 value2    

#查询对应key的键值对   
get key   

#将指定的value追加到key原值的末尾如:(原值为:acb key值为:edf  执行后结果为:abcdef)	                         
append key value   

#获取key值的长度               
strlen key  

#只有key不存在时,才设置key的值为value                      
strnx key value

 #获取值的范围(如:0-2)                    
getrange key 0(起始位置) 2(结束位置)

#在起始位置后添加相对应的value值 
setrange key 3(起始位置) value

#设置过期时间单位为秒       
setex key 20(过期时间) value

#用新value换掉对应 key的旧value         
getset key value

#同时设置多个键值对,只有key不存在时并且有一个失败则都失败                    
msetnx key1 value key2 value2

#将key中储存的数字增1 ,只能对数字值操作,如果为空新增值为1       
incr key

 #将key中储存的数字减1 ,只能对数字值操作,如果为空新增值为-1                            
decr key

#将key中储存的数字增加相对应的步长值如:(原value值为500,当前步长为20,结果为520)                           
incrby key 步长

#将key中储存的数字减少相对应的步长值如:(原value值为500,当前步长为20,结果为480)                     
incrby key 步长                     

2.List类型(列表)

2.1 简介:

1.Redis列表是简单的字符串列表,按照顺序插入排序,可以添加一个元素到列表的头部(左边)或者
2.尾部(右边)
3.它的底层实际是一个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能较差
4.List的数据结构为快速链表quickList
5.首先在列表元素较少的情况下使用一块内存存储,这个结构是ziplist,也即是压缩列表
5.当数据量比较大时才会改成quicklist

2.2 常用命令:

#从左边插入一个或多个值
lpush key1 value1 value2

#从右边插入一个或多个值          
rpush key3 value1 value2

#从左边取出一个值(值在键在,值光键亡)             
lpop key

#从右边取出一个值(值在键在,值光键亡)                              
rpop key

#从key1的右边取出一个值插入到key2左边                            
rpoplpush key1 key2

#按照下标位置获得对应key的元素(从左到右,0到-1代表取所有的)                   
lrange key 0(1下标位置) -1(2下标位置)

#获取对应key对应下标的元素   
lrange key 0(下标位置)

#获取key的列表长度                 
llen key

#在value后面插入一个newvalue值(是一个单独的value)                              
linsert key after value newvalue

#在value前面插入一个newvalue值(是一个单独的value)       
linsert key befor value newvalue

#从左边删除n个对应的value值      
lrem key n value

#将列表key下标为index的值替换成value                      
lset key index value                 

3. Set类型(集合)

3.1 简介:

1.Redis set对外提供的功能与list类似的是一个列表的功能,特殊之处在于set是可以自动排重
  的,当你需要储存一个列表数据,又不需要出现重复的数据时,set是一个很好的选择
2.set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的
3.Redis的Set是String类型的无序集合,它底层其实是一个value为null的hash表,所以添加,删
除,查找的复制度都是o(1)
4.Set结构是dict字典,字典是用哈希表实现的
5.java中的HashSet的内部实现使用的是HashMap,只不过所有的value都指向同一个对象Redis
的Set结构也是一样的

3.2 常用命令:

#将一个或多个元素加入到集合key中
sadd key value1 value2

#取出key集合的所有值       
smembers key

#判断集合key是否含有该value值,有返回1没有返回0                 
simember key value

#返回该集合的元素个数           
scard key

 #删除集合中的某个元素                    
srem key value value

#随机从该集合吐出一个值(值取完key则不存在)        
spop

#随机从该集合中取出n个值,不会从集合中删除                         
srandmember key n

#把key1集合中的value1从一个集合(key1)移动到另一个集合(key2)            
smove key1 key2 value1

#返回两个集合的交集元素       
sinter key1 key2

#返回两个并合的交集元素             
sunion key1 key2

#返回两个集合的差集元素             
sdiff key1 key2              

4. Hash类型(哈希)

4.1 简介:

1.Redis hash 是一个键值对集合
2.Redis hash 是一个String类型的field和value的映射表,hash特别适合用于储存对象类似
  java里面的Map
3.Hash类型对应的数据结构是两种:ziplist(压缩列表),hashtable(哈希表).当field-value
  长度较短且个数较少时,使用ziplist否则使用hashtable

4.2 常用命令:

#给key集合中的field赋键值value
hset key field value

#从key集合field取出value               
hget key field value

#批量设置值               
hmset key field value1 value2

#查看哈希表key中是否存在该field      
hexists key field

#列出该hash集合的所有field                  
hkeys key

#列出该hash集合的所有value                          
hvals key

#给哈希表key中的域field的值增加上增量2如:(field为valeu为2,执行后的value结果为4)                           
hincrby key field 2

#将哈希表中key中的域field的值设置为value(field的value不存在时才生效)              
hsetnx key field value             

5. Zset类型(有序集合)

5.1 简介:

1.Redis有序集合的zset与普通的set非常相似是一个没有重复元素的字符串集合
2.不同之处,有序集合的每个成员都关联了一个评分(score),被用来按照从最低分到最高分的方式
  排序集合中的成员,集合的成员是唯一的但是评分是可以重复的
3.因为元素是有序的,可以很快的根据评分(score)或者次序(position)来获取一个范围的元素
4.访问有序集合的中间元素也是非常快的
5.zset底层使用了两个数据结构:
   (1):hash,hash的作用就是关联元素value和权重scope,保障元素value的唯一性,可以通过value找到对应的scope值
   (2):跳跃表,跳跃表的目的在于给元素的value排序,根据scope的范围获取元素列表

5.2 常用命令:

#将一个或多个元素及score值加入到有序集合key当中
zadd key score1 value1 score2 value

#返回有序key中下标在star与stop之间的元素    
zrange key star stop

#返回有序key中下标在star与stop之间的元素和score(评分)                   
zrange key star stop withscores

#返回有序集合key中,所有scope值介于min和max之间的成员(包括等于min与max的)        
zrangebyscores key min max

#返回有序集合key中,所有scope值介于min和max之间的成员和评分(scope)(包括等于min与max的)             
zrangebyscores key min max withscores

#改为同大到小排序  
zrevrangebyscores key max min

#为元素的scope增n           
zincrby key n value

#删除集合中key指定的value元素                    
zrem key value

#统计该集合下,min与max内的元素个数                        
zcount key min/max  

#返回改值在集合中的排名,从0开始                   
zrank key value                       
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/996227.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号