Redis五大数据类型以及常用命令

Redis五大数据类型以及常用命令

redis常用五大数据类型

String (字符串)、List(列表)、Hash(哈希表)、Set(无序集合)、Zset(有序集合)

redis数据库常见使用命令

  • redis-server : redis服务器启动命令
  • redis-cli : 客户端,操作入口
  • select 【dbid】 : 切换数据库
  • dbsize : 查看当前数据库key的数量
  • flushdb : 清空当前库
  • fliush : 通杀所有库
  • keys * : 查看当前库所有key
  • exists key : 查看key是否存在
  • type key : 查看key是什么类型
  • del key : 删除指定的key数据
  • unlink key : 异步删除指定key
  • expire key 10 : 为给定的key设置过期时间
  • ttl key : 查看指定key还有多久过期 -1永不过期 -2已经过期

redis常见五大类型以及常用命令

Redis字符串-String

String 类型是 Redis 最基本的数据类型,一个 Redis 中字符串 value 最多可以是 512M

set/get/del/append/strlen

1.set---设置值                		    eg:set key value
2.get---获取值				   		    eg:get key
3.mset---设置多个值        	  		  eg:mset name xyy age 18 height 180
3.mget---获取多个值	 		  		  eg:mget name age height
4.setex---设置键值以及过期时间			eg:setex <key><过期时间><value>
5.del---删除         		    		 eg:del name
6.strlen---查看字符串长度  	 		  eg:strlen  height
7.append---追加值到指定key后	 		  eg:append	key	value
8.setnx---只有在 key 不存在时 设置 key 的值 eg:setnx <key> <value>
9.msetnx---同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在
		eg:msetnx <key1><value1><key2><value2> ....

incr/decr/incrby/decrby

1.incr---每次自增1    eg:incr age
2.decr---每次自减1    eg:decr age
3.incrby---自定义自增多少  eg:incrby age 5
4.decrby---自定义自减多少  eg:decrby age 5

getrange/setrange

1.getrange ---- 获取指定区间范围内的值,类似between....and的关系 
2.setrange ---- 代表从第几位开始替换,下脚本从零开始
3.getrange key 0 -1 ---从0 -1表示获取全部

Redis列表-List

单键多值

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

它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节 点性能会较差

lpush/rpush/lpop/rpop/lrange/rpoplpush

lpush ---- 从左边插入数据   lpush a1  1 2 3 4 5  倒序排列
rpush ---- 从右边插入数据   rpush a2  1 2 3 4 5  正序排列
lpop ---- 移除最左元素  lpop a1 删除元素5
rpop ---- 移除最右元素  rpop a1 删除元素1
lrange ---- 获取指定长度    lrange  a1  0  -1  获取a1 中的所有值
rpoplpush s1 s2 ---- 将s1中最后一个压入s2中第一位

lindex/llen/lrem key/ltrim key

lindex ---- 按照索引获取元素  lindex a1 2  获取元素3
llen ---- 获取列表长度  llen l1 获取列表l1长度
lrem a1 2 1---删N个value   在a1中删除21
ltrim ---- 开始index结束index,截取指定范围的值后在赋值给key
ltrim a1 0 2    截取l1从02的数据重新赋值给a1a1中数据改变

lset key index value

lset s1 0 x ---- 将s1中第一位换成x

linsert key before/after

linsert s1  before x python  在x之前加字段python
linsert s1  after x java  在x之前加字段java

Redis集合-Set

list 类似是一个列表的功能,特殊之处在于 set 是可以自动排重的

Redis 的 Set 是 string 类型的无序集合。它底层其实是一个 value 为 null 的 hash 表,所以添加,删除,查找的复杂度都是 O(1)。

sadd/smembers/sismember

sadd/smembers/sismember ---- 添加/查看集合/查看是否存在
sadd set01 1 2 2 3 3  自动去掉重复
smembers set01   得到set01
sismember set01 1  如果存在返回1  不存在返回0

scard

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

srem key value

srem ---- 删除集合中元素
srem set01 3 ---- 删除set01中的3

srandmember key(原来集合不变)

srandmembe ---- 随机选出几个数
sadd set02  1 2 3 4 5 6 7 8
srandmember set02  2 ---- 随机选出两个数且原来集合不变

spop key(原来集合发生变化)

spop ---- 随机出栈
spop set01

smove key1 key2

sadd set03 x y z 
smove set01 set03 2  将set01中的2 移动到set03中

集合类

sadd set01 1 2 3 4 5
sadd set02 1 2 3 a b
差集
SDIFF set01 set02   返回 4 5
交集
SINTER set01 set02   返回 1 2 3
并集
SUNION set01 set02  返回set01 set02 中的值  

Redis哈希表-Hash

Redis hash 是一个键值对集合。

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象.

通过 key(用户 ID) + field(属性标签) 就可以操作对应属性数据了,既不需要重复存储数 据,也不会带来序列化和并发修改控制的问题

hset/hget/hmset/hmget/hgetall/hdel

设值/取值/设值多个值/取多个值/取全部值/删除值
hset user id 11 ---- 设置值
hget user id ---- 获取值 
hmset anb id 11 name xyy age 18 ---- 设置多个值
hmget anb id name age ---- 获取多个值,只返回相应的值
hgetall   anb ---- 返回全部值
hdel anb id ---- 删除id

hlen

hlen anb ---- 求哈希长度 

hexists key

hexists name ---- 确定key中是否存在某个值
存在返回1 ,不存在返回0

hkeys/hvals

hkeys anb ---- 获取所有的键
hvals anb ---- 获取所有的值

Redis有序集合-Zset

Redis 有序集合 zset 与普通集合 set 非常相似,是一个没有重复元素的字符串集合。

不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用 来按照从最低分到最高分的方式排序集合中的成员。

集合的成员是唯一的,但是评分可以是重复了 。

因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序(position)来获 取一个范围的元素。 访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成 员的智能列表

zadd/zrange

zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5
zrange zset01 0 -1 ---- 返回集合中所有值

zrangebyscore key start end

zrangebyscore key start end----根据开始结束来取值
zrangebyscore zset01 60 70

zrangebyscore zset01 60 (90   表示不包含90

zrangebyscore zset01  60 90  limit  1 2  从第一条开始截取2

zrem key

zrem key value---- 某score下对应的value值,作用是删除元素
zrem zset01 v1 ----- 删除zset01中的v1

zcard/zcount key score 区间/zrank key values

zcard   求zset01元素总数
zcount  zset01 60 9060-90中间的元素个数
zrank   zset01  v2   返回1  返回对应下角标,从0开始

redis其他命令

redis 命令手册

posted @   王清脆  阅读(266)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示