redis常用类型(strings、sets、lists、hashes、sorted sets)的相关命令

本文详细介绍了Redis中的不同类型,如字符串、散列、列表、集合和有序集合,以及它们各自的关键操作,如字符串的set/get/append等,集合的sadd/sismember等,以及排序集合的zadd/zrange等。还展示了如何在实际场景中使用这些数据结构进行高效的数据管理和操作。
摘要由CSDN通过智能技术生成

一、Redis的类型

1、字符串(strings)
2、散列(hashes)
3、列表(lists)
4、集合(sets)
5、 有序集合(sorted sets)

二、Redis常用操作

1.String类型

string 是 redis 最基本的类型,一个 key 对应一个 value。
string 类型是二进制安全的,意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
string 类型是 redis 最基本的数据类型,string 类型的值最大能存储 512MB。

1.1 set/get/append/strlen

127.0.0.1:6379> select 0     #切换到第1个数据库,默认共有16个数据库,索引从0开始
OK

127.0.0.1:6379> keys *       #显示所有的键key
(empty list or set)

127.0.0.1:6379> set name tom    #设置键
OK

127.0.0.1:6379> get name     #获取键对应的值
"tom"

127.0.0.1:6379> exists mykey  #判断该键是否存在,存在返回1,不存在返回
(integer) 0

127.0.0.1:6379> append mykey "hello"   #如果该键不存在,则创建,返回当前value的长度
(integer) 5

127.0.0.1:6379> append mykey " world"  #如果该键已经存在,则追加,返回追加后value的长度
(integer) 11

127.0.0.1:6379> get mykey   #获取mykey的值
"hello world"

127.0.0.1:6379> strlen mykey   #获取mykey的长度
(integer) 11

#EX和PX表示失效时间,单位为秒和毫秒,两者不能同时使用;NX表示数据库中不存在时才能设置,XX表示存在时才能设置
127.0.0.1:6379> set mykey "this is test" EX 5 NX 
OK
127.0.0.1:6379> get mykey
"this is test"

1.2 incr/decr/incrby/decrby

127.0.0.1:6379> flushdb    #清空数据库
OK

127.0.0.1:6379> set mykey 20
OK
127.0.0.1:6379> incr mykey   #递增1
(integer) 21
127.0.0.1:6379> decr mykey   #递减1
(integer) 20

127.0.0.1:6379> del mykey    #删除该键
(integer) 1

127.0.0.1:6379> decr mykey
(integer) ­1
127.0.0.1:6379> del mykey
(integer) 1

127.0.0.1:6379> INCR mykey
(integer) 1
127.0.0.1:6379> set mykey 'hello'   #将该键的Value设置为不能转换为整型的普通字符串
OK
127.0.0.1:6379> incr mykey    #在该键上再次执行递增操作时,Redis将报告错误信息
(error) ERR value is not an integer or out of range

127.0.0.1:6379> set mykey 10
OK
127.0.0.1:6379> incrby mykey 5      #递增5,即步长
(integer) 15
127.0.0.1:6379> decrby mykey 10     #递减10
(integer) 5

1.3 getset/setex/setnx

# getset 获取的同时并设置新的值	
127.0.0.1:6379> incr mycount	#将计数器的值原子性的递增1
(integer) 1		
127.0.0.1:6379> getset mycount 666	#在获取计数器原有值的同时,并将其设置为新值			
"1"			
127.0.0.1:6379> get mycount	
"666"		

# setex	设置过期时间	
127.0.0.1:6379> setex mykey 10 "hello"	#设置指定Key的过期时间为10秒,等同于set mykey hello ex 10
OK
127.0.0.1:6379> ttl mykey	#查看指定Key的过期时间(秒数)
(integer) 8
		
# setnx 当key不存在时才能设置	
127.0.0.1:6379> del mykey
(integer) 0		
127.0.0.1:6379> setnx mykey "aaa"	#key不存在,可以设置,等同于set mykey aaa nx
(integer) 1		
127.0.0.1:6379> setnx mykey "bbb"	#key存在,不能设置
(integer) 0		
127.0.0.1:6379> get mykey	
"aaa"		

1.4 setrange/getrange 设置/获取指定索引位置的字符

127.0.0.1:6379> del mykey	
(integer) 1	
127.0.0.1:6379> setbit mykey 7 1	#设置从0开始计算的第七位BIT值为1,返回原有BIT值0	
(integer) 0	
127.0.0.1:6379> get mykey	#获取设置的结果,二进制的0000 0001的十六进制值为0x01	
"\x01"	

127.0.0.1:6379> setbit mykey 6 1	#设置从0开始计算的第六位BIT值为1,返回原有BIT值0	
(integer) 0	
127.0.0.1:6379> get mykey	#获取设置的结果,二进制的0000 0011的十六进制值为0x03	
"\x03"

127.0.0.1:6379> getbit mykey 6	#返回了指定Offset的BIT值
(integer) 1	
127.0.0.1:6379> getbit mykey 10	#如果offset已经超出了value的长度,则返回0	
(integer) 0	

1.5 setbit/getbit 设置/获取指定位的BIT值,应用场景:考勤打卡

127.0.0.1:6379> del mykey	
(integer) 1	
127.0.0.1:6379> setbit mykey 7 1	#设置从0开始计算的第七位BIT值为1,返回原有BIT值0	
(integer) 0	
127.0.0.1:6379> get mykey	#获取设置的结果,二进制的0000 0001的十六进制值为0x01	
"\x01"	

127.0.0.1:6379> setbit mykey 6 1	#设置从0开始计算的第六位BIT值为1,返回原有BIT值0	
(integer) 0	
127.0.0.1:6379> get mykey	#获取设置的结果,二进制的0000 0011的十六进制值为0x03	
"\x03"

127.0.0.1:6379> getbit mykey 6	#返回了指定Offset的BIT值
(integer) 1	
127.0.0.1:6379> getbit mykey 10	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值