Redis基本操作

本文全面介绍了Redis中五种核心数据结构:String、Hash、List、Set和ZSet的操作命令,包括设置、获取、删除、查询等常用功能,以及每种数据结构的特点和适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用操作:

redis-server /usr/local/redis/redis.conf :指定配置文件启动
clear:清屏
select+库角标:选择数据库
dbsize:当前数据库中key的数量
keys *:所有键
keys k*:以k开头的所有键
exists key:键是否存在
move key 库角标:把key剪切到角标数据库中
expire key 秒钟:为给定key设置过期时间
ttl key:查看还有多少秒过期,-1表示永不过期,-2表示已过期
type key:查看key是什么类型
del key:删除key

string类型:
二进制安全:string可以包含任何数据
一个字符串value最多可以是512M
一个key对应一个value,可以保存任何类型的数据,如:jpg图片,序列化对象
字符的下标是从0开始的

set/get/del/append/strlen
incr/decr/incrby/decrby
getrange/setrange
setex(set with expire)/setnx(set if not exist)
mset/mget/msetnx(m:more)
getset(先get再set)

set	设置一个键值对 set name zhaoliu
setnx	当且仅当键不存在时设置一个键值对,并返回1,否则返回0 setnx name zhaoliu
setex key time value
setrange 替换指定key的value值的字符串		setrange name 4 @qq.com	从下标为4的位置开始	    								当替换的长度小于原长度时,原字符串的多出来的内容不变
mset	一次设置多个key-value,全部成功返回1,否则返回0,任何一个出现问题都保存不成功
	mset key1 lisi ket2 wangwu key3 zhaoliu
msetnx	一次设置多个key-value,当且仅当键不存在时返回1,否则返回0,任何一个已经存在,就保存不了。
get	get key
getset	设置key的值,并返回一个key的旧值	getset key 20 设置key为20,并获取key之前的值
getrange 返回key的子字符串getrange key 0 5 key的第0个字到第5个字符,一共6个字符
mget	批量获取mget key1 key2 key3
incr	自增1 incr key
incrby	incrby key 6 如果之前没有值,默认是0
decr
decrby
append	给key的value追加value,返回value长度 append key .com
strlen	取key的value的长度	strlen key

hash类型
类似于java中的map,string类型的filed和value的映射表,特别适合存储对象
kv模式不变,但v是一个键值对kv

hset/hget/hmset/hgetall/hdel
hlen
hexists key 在key中的某个值的key
hkeys/hvals
hincrby/hincrbyfloat
hsetnx

hset 设置hash filed为指定值	hset user:001 name yz
hget 获取			hget user:001 name	得到yz
hsetnx	当且仅当键不存在时设置	hsetnx user:001 name yz
hmset 同时设置hash的多个field	hmset user:001 name yz age 22 sex nan
hmget 批量返回hash的多个field	hmget user:001 name age sex
hincrby 对hash的field加上值	hincrby user:001 age 5
hexists	测试指定field是否存在	hexists	user:001 address 存在返回1,不存在返回0
hlen	hash表里所有存在的field的数量	hlen user:001
hdel	删除指定hash的field	hdel user:001 age
hkeys	返回hash的所有field,不是值	hkeys user:001
hvals	返回hash的所有field的值		hvals user:001
hgetall 获取某个hash中全部的field及value

list类型
list是一个链表结构,可以左右添加等操作。主要功能是push、pop、获取一个范围的所有值等等
操作中的key为链表的名称。是一个双向string链表

(l:left/r:right)
lpush/rpush/lrange
lpop/rpop/rpoplpush
lindex,按照索引下标获得元素(从上到下)
llen
lrem key n v :删N个value
ltrim key index1 index2 :保留index1到index2之间的value到key
lset key index value
linsert key before/after 值1 值2

lpush	在key对应的list的栈顶添加字符串元素	lpush mylist "world"	lpush mylist "hello"
	lpush list 1 2 3 4 5:先存1再存2……lrange取出的顺序是存入的反向
	最后一个是头部
lrange	lrange 0 -1 代表从头到尾部,取出元素	hello world
rpush	在key对应的list的尾部添加字符串元素	rpush mylist "world"	rpush mylist "hello"
	rpush list 1 2 3 4 5:先存1再存2……lrange取出与存入的顺序相同
	最后一个是尾部
linsert	在某个元素前面插入一个元素	linsert mylist before "world" "hello"在world前面插入hello
lset	设置指定下标(默认从0开始)的元素	lset mylist 1 "hi"
lrem	从list中删除n个和value相同的值,并返回删除的个数,不成功返回0	lrem mylist 3 "one" 从mylist里面删除3个one元素
ltrim	保留第k个到第n个值到key	ltrim mylist start end	返回OK表示成功 start=k-1
lpop	从list的栈顶删除一个元素	lpop mylist	返回删除的元素
rpop	从list的尾部删除一个元素	rpop mylist	返回删除的元素
rpoplpush	从第一个list尾部删除元素并添加到第二个list头部	rpoplpush firstlist secondlist
lindex	返回index位置的元素	lindex mylist index
llen	返回list的size		llen mylist

set
无序无重复集合

sadd/smembers/sismember
scard key:获取集合里面有多少个元素
srem key value:删除集合中元素
srandmember key n:在key里面随机出n个value
spop key:随机出栈
smove key1 key2 value1:将key1中的value1赋给key2
差集sdiff:sdiff key1 key2,在key1中不在key2中
交集sinter:sinter key1 key2,key1和key2中都有
补集sunion:sunion key1 key2,所有不重复的value

sadd set01 1 1 2 2 3 3  返回(integer)3
smembers set01          返回"1" "2" "3"
smembers key:返回所有value
sismember key value:value是否是key里面的成员

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

zadd/zrange[withscores]
zrangebyscore key [(]startscore [(]endscore [limit n m]:(表示大于或者小于,n表示从结果集中的第n个截取m个
zrem key 某score下的value值:删除元素
zcard:统计元素的个数
zcount key score区间:统计区间的元素个数
zrank key values值:获得下标值
zscore key values值:获得分数
zrevrank key values值:倒序获得下标值
zrevrange key 0 -1:倒序输出
zrevrangebyscore key endscore startscore:倒序排序输出
    
zdd zset01 60 v1 70 v2 80 v3 90 v4 100 v5
zrange zset01 0 -1 [withscores]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值