Redis五大数据类型+key常用方法

Redis五大数据类型+key常用方法

Redis 键(Key)

  1. keys * 列出所有的key
  2. keys apple* 匹配的apple*
  3. exists key_name 判断key_name 是否存在
  4. move key db 移动到指定库
	eg:MOVE song 1		//将 song 移动到数据库 1
  1. expire key 为给定的key设置过期时间
  2. ttl key 查看key还有多少秒过期,-1永不过期,-2已过期
  3. type key 查看key的类型
  4. del key 存在时删除key
  5. persist key 移除key的过期时间,key持久化保持

Redis 字符串(String)

  1. set/get/del/append/strlen 追加/长度 (set存在时覆盖)
  2. Incr/decr/incrby/decrby 只有数字才能加减 自加每次加1
  3. getrange/setrange 获取指定区间,类似between and
	eg:getrange key6 0 -1 		//从0 -1 表示全部   -1最后一个字符,-2表示倒数第二个
eg:get key4 
	abcd1234
   setrange key4 1 xxx
    axxx1234				//设置区间,从0开始
  1. setex 设置键秒值
setex key1 12 hello		//设置key1 为hello 12 秒
  1. setnx 只有在key不存在时设置key值
eg:
	setnx key1 hello
	  1
	setnx key1 hello2
	  0
  1. mset/mget/msetnx 同时设置一个或多个键值对
eg:mset key1 aa key2 bb key3 cc
   mget key1 key2 key3 
	1)"aa"
	2)"bb"
	3)"cc"

msetnx 必须所有的key都不存在才能设置

  1. getset 先get再set
eg:
   get k1
	"hello"
   getset k1 abc
	"hello"
   get k1
    "abc"

Redis 列表list

  1. lpush/rpush/lrange
eg: LPUSH list1 "foo"
	LPUSH list1 "bar"
	LRANGE list1 0 -1
	 1) "bar"
	 2) "foo"
  1. lpop/rpop 弹出 队列里就没了
  2. lindex/llen
  3. lrem key 删除N个value
eg:lrem list3 2 v1 		//删除list3中的2个v1键
  1. ltrim key
eg:ltrim list1 3 5 		//截取index从3到5
  1. rpoplpush list1 list2
  • 弹list1的最后一个,添加到list2的头
  1. lset key index value
  2. linsert key before/after 值
eg:linsert list3 before 3 oracle 		//在list3 的3(键)之前加oracle

Redis set集合

  1. sadd/smembers/sismember 添加(重复会失败)/打印全部/判断存在
eg:sismember set1 0 		//判断0是否存在于set1 不存在0/存在1
  1. scard 获取元素个数
  2. srem key value
eg:srem set1 v1 v2 v3
  1. srandmember key n
  • 从key中取出n个数(不会改变key)
  • 超过最大数量就全部取出
  • 如果n为负数,就有可能有重复的数
  1. spop 随机弹一个数出来
  2. smove key1 key2 a //将key1里的值赋给key2
  3. 数学类集合
    sdiff 差集 set1里有的set2里没有的
    sinter 交集
    sunion 并集

Redis 哈希hash

  1. kv模式不变,但V是一个键值对,存对象 (K,(K,V))
  2. hset/hget/hmset/hmget/hgetall/hdel //获取所有的键,值/删除存在的返回1
  3. hlen/hexists(同之前)
  4. hkeys/hvals 获取所有的键/值
  5. hincrby/hincrbyfloat 增加整数/小数
eg:hincrby hash k1 3	给hash的k1的值增加3
  1. hsetnx 不存在赋值,存在无效

Redis 有序集合Zset

  1. 基于set,多加个score
  • set: k1 v1 k2 v2
  • Zset: k1 score1 v1 score2 v2
  1. zadd/zrange/zrevrange(逆序)
eg:zadd zset01 60 v1 70 v2 80 v3	 (注意此时数字不是value,是score)
		
		zrange zset01 0 -1
		 1)"v1"
		 2)"v2"
		 3)"v3"
		zrange zset01 0 -1 withscores
		 1)"v1"
		 2)"60"
		 3)"v2"
		 4)"70"
		 5)"v3"
		 6)"80"

3.zrangebyscore/zrevrangebyscore(逆序)

eg:	zrangebyscore zset01 60 90	  	60<=值<=90
	zrangebyscore zset01 60 (90		60<=值<90
	zrangebyscore zset01 (60 (90		60<值<90
	zrangebyscore zset01 60 90 limit 2 2		60<=值<=90,从2开始截2个 (同mysql)
注意:zrevrangebyscore zset01 90 60      90>=值>=60
  1. zrem 删除
  2. zcard/zcount/zrank
eg:	zcard zset01			统计个数
	zcount zset01 60 80  	统计60-80的个数
	zrank zset01 v4			得到下标
	zscore zset01 v4 		得到对应的score
	zrevrank zset01 v4 		逆序得到下标

自己总结,仅供参考。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值