Redis列表(List)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
实例
redis 127.0.0.1:6379> LPUSH java redis
(integer) 1
redis 127.0.0.1:6379> LPUSH java mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH java mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE java 0 10
1) "mysql"
2) "mongodb"
3) "redis"
lpush 尾赋值
rpush 头赋值
lrange 取值
lpop 移出并获取列表信息 第一元素
rpop 移出并获取列表信息 最后一个元素
lindex 通过索引获取列表的元素
llen 获取长度
lrem key 从left 到right 删除2个值等与xml的元素
ltrim 截取指定索引区间的元素
rpoplpush 移出列表的最后一个元素 并将该元素添加到另一个列表并返回
lset 给定的位置进行修改
linsert befor after 在值起那面或者后面进行插入
性能总结:
- 它是一个字符串链表,left、right都可以插入添加;
- 如果键不存在,创建新的链表;
- 如果键已存在,新增内容;
- 如果值全移除,对应的键也就消失了。
- 链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。
- 列表,可以经过规则定义将其变为队列、栈、双端队列等
Redis集合(set)
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
flushall 清空数据
clear 清屏
Sadd 添加数据
SMEMBERS 查看数据
scard 获取集合里面的个数
srem 删除集合中的元素
127.0.0.1:6379> srem java mysql
(integer) 1
srandmember key 莫个整数 随机出个数
- 从set集合里面随机取出
- 如果超过了最大数量就全部取出
- 如果值是负数 比如是 -3 表示取3个 。但是有重复的值
smove key1 key2 在key1 里 莫个值作用是将key1 里面的某个值赋值给 key2
数据集合操作
- 交集 sinter
- 并集 sunion
- 差集 sdiff 第一个列表里有 第二个列表里没有
Redis哈希(Hash)
Redis HASH 是一个string类型 field(字段) 和vlaue(值) 的映射表, hash特性适合存储对象。
hset 赋值
hget 取值
hmset 赋值多个值
hmget 取值
hgetall 取出全部的值
hdel 删除某个字段
hlen 长度
hexists key 在key里面的某个值是否存在
hkeys 获取所有key值
hvals 获取所有的value值
Redis有序集合Zset
Redis 有序集合和集合一样也是string类型元素集合,且不允许有重复的成员 不同的是每个元素都是关联一个double类型分数。 通过这个分数值进行从小到大的排序
zadd 赋值
127.0.0.1:6379> zadd user 60 wenwen 80 wcc 70 jingjing 90 xueqiong 1000 zhongzhong
(integer) 5
zrange 取值
127.0.0.1:6379> zrange user 0 -1
1) "wenwen"
2) "jingjing"
3) "wcc"
4) "xueqiong"
5) "zhongzhong"
127.0.0.1:6379> zrange user 0 -1 withscores
1) "wenwen"
2) "jingjing"
3) "wcc"
4) "xueqiong"
5) "zhongzhong"
zrem 删除元素
127.0.0.1:6379> zrem user wenwen jingjing
(integer) 1
zcard 获取结合中的元素个数
127.0.0.1:6379> zcard user
(integer) 8
zcount 获取分数区间内元素个数 zcount key 开始 分数区间 结束分数区间
127.0.0.1:6379> zcount user 30 60
(integer) 3
zrank 获取value 在zset中的下标的位置
127.0.0.1:6379> zrank user xiaoqi
(integer) 2
ZREVRANGEBYSCORE 分数是反着来的
127.0.0.1:6379> ZREVRANGEBYSCORE user 90 30 withscores
1) "xueqiong"
2) "90"
3) "jingjing"
4) "90"
5) "wcc"
6) "80"
7) "wenwen"
8) "60"
9) "xiaoqi"
10) "40"
11) "xingxing"
12) "30"