redis的五大数据结构

redis的五大数据结构

首先了解redis最基础的命令

select:命令切换数据库,从0开始,共有16个库
dbsize:查看当前数据库key的数量
flushdb:清空当前库
flushall:通杀全部库
Redis的五大数据结构
  • String

    String是Redis最基本的数据类型,可以理解成Memcached一摸一样的类型,一个key对应一个value。

    String类型是二进制安全的,意思是redis的String可以包含任何数据

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

  • hash

    redis的hash是一个键值对的集合,是一个String类型的field个value的映射表,hash热别适合用于存储对象,类似于java里的Map<String,Object>

  • set

    redis的set是String的无序集合,它是通过HashTable实现的

  • zset

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

  • list

    简单的字符串列表,按插入顺序排序,底层实际是链表

可以在Http://redisdoc.com/网站获取redis常见数据类型操作命令
Redis键(keys)常用的命令
keys * :列出当前库的所有key
exists key的名字:判断某个key是否存在
move key db:将某个key移至某个db
expire key 秒钟:为给定的key设置过期时间
ttl key:查看还有多少秒过期,-1表示永不过期,-2表示已经过期
type key:查看key是什么类型
Redis字符串(String):

set、get、del、append、strlen(长度)、incr(+1)、decr(-1)、incrby(+n)、decrby(-n)一定要是数字才可以加减

getrange:获取指定区间范围的值,类似于between…and

setrange:设置指定区间范围的值,格式:setrange key值 具体值

setx(set with expire)键值对:设置过期时间

setnx(set if not exist):不存在设置键值,存在不会覆盖

mset 、 mget 、msetnx 合并

Redis列表(List)

lpush(左建立) / rpush(右建立) / lrange(范围截取)

lpop (左删除) / rpop(右删除)

lindx,按索引下标获得元素(从上到下)

llen:长度

lrem key:删n个value

ltrim key 开始index 结束index:截取指定范围的值后再赋值给key

rpoplpush 源列表 目的列表

lset key indext value:将key换成value

linsert key before / after 值1 值2:把值2插到值1的前或后

总结:它是一个字符串链表,left、right都可以插入添加

如果键不存在,创建新的链表,若已经存在,新增内容,如果值全部移除,对应的键也消失

链表的操作无论是头和尾效率都极高,但假如对中间元素进行操作,效率很一般
Redis集合(set)

sadd(添加创建) / smembers(遍历总) / sismember(遍历个)------> 不会添加重复值

scard:获取集合里的元素个数
srem key value :删除集合中元素
srandmember key:某个数值(随机出几个数)
spop key:随机出栈
smove key1 key2:在key1里的某个值,作用是将key1的某个值,作用是将k1里的某个值赋予key2

数学集合类:

差集:sdiff key1 key2:在第一个set里不在后面任意一个set里
交集:sinter key1 key2
并集:sunion key1 key2
Redis哈希(hash)

kv模式不变,但v是一个键值对

hset:设定
hget:得到
hmset:多设定
hmget:多得到
hgetall:全得到,键值对全得到
hlen:长度
hexists key :在key里面的某个值的key
hkeys:所有的key
hvals:所有的val
hincrby:加整数
hincrbyfloat:加小数
hsetnx:不存在加进去
Redis有序集合(zset)[scorted set]

在set基础上,加一个score值,之前set是k1 v1 v2 v3,现在zset是k1 score1 v1 score2 v2

zadd:添加
zrange:遍历v
withscores:遍历v和score
zrangebyscore key 开始score 结束score:返回开始和结束score间的value
	1、withscores
	2、( 不包括
	3、limit作用是返回限制
		limit 开始下标步 多少步
		limit 2 2;----->从2截取2个
	zrem key某个score下对应的value值,作用是删除元素
	zcard/zcount key score区间
	zrank key values:作用是获取下标值
	zscore key 对应值 获得分数
	zrevrank key values值,作用是逆序获得小标值
	zrevrangebyscore key 结束score 开始score
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牧码文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值