Redis 数据类型

Redis命令使用参考

字符串操作 – (String)

- set  将字符串值value关联到key
127.0.0.1:6379> set name zhangsan

- setnx 键 key 不存在的情况下,将键 key 的值设置为 value,否则不执行
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> setnx name lisi
(integer) 0
127.0.0.1:6379> get name
"zhangsan"
append -- 给指定的key的值添加值
setnx -- 设置key的值,如果该key存在则不生效
strlen -- 获取value的长度

列表操作

- lset  修改列表中的指定下标的值 value
127.0.0.1:6379> lset names 0 zhangsan
OK
- lpush|rpush 创建一个列表中从左()边依次添加值 value
127.0.0.1:6379> lpush names lisi wangwu
(integer) 3
- lpop | rpop 从列表的左()边取出一个值(值在键在,值光键亡)
- lrange 查询names列表中指定范围(下标)的值 value
127.0.0.1:6379> LRANGE names 0 -1
1) "wangwu"
2) "lisi"
3) "zhangsan"
- rpoplpush <key1><key2>  从key1列表右边取一个值插入到列表key2列表的左边
- 127.0.0.1:6379> lpush names zhangsan lisi wangwu 
(integer) 3
127.0.0.1:6379> rpush ages 20 30 40
(integer) 3
127.0.0.1:6379> RPOPLPUSH ages names
"40"
127.0.0.1:6379> LRANGE names 0 -1
1) "40"
2) "wangwu"
3) "lisi"
4) "zhangsan"
127.0.0.1:6379> 

集合

- sadd 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略
- smembers 返回集合 key 中的所有成员。
127.0.0.1:6379> SMEMBERS test01
1) "baidu"
2) "sina"
3) "163"
- spop 移除并返回集合中的一个随机元素,使用count命令可以获取一个随机元素,但该元素不会从集合中被移除
127.0.0.1:6379> spop test01 1
1) "sina"
127.0.0.1:6379> SMEMBERS test01
1) "baidu"
2) "163"
- SISMEMBER  判断值 value 是否为集合的成员
127.0.0.1:6379> sadd test01 baidu sina 163.com
(integer) 3
127.0.0.1:6379> SISMEMBER test01 baidu
(integer) 1 #[存在]
127.0.0.1:6379> SISMEMBER test01 bai
(integer) 0 #[不存在]
- sdiff 返回一个集合的全部成员,该集合是所有给定集合之间的差集
127.0.0.1:6379> sadd test02 baidu google souhu
(integer) 3
127.0.0.1:6379> SDIFF test01 test02
1) "sina"
2) "163.com"
- sinter  取并集
- sunion  取交集

有序集合

数据结构
SortedSet(zset)是Redis提供的一个非常特别的数据结构,一方面它等价于Java数据结构的Map<String,Double>,可以给每个元素value赋予一个权重 Score,另一方面类似于TreeSet,内部的元素会按照权重Score进行排序,可以得到每个元素的名次,也可以通过Score的范围来获取元素的列表。
zset底层使用两个数据结构:
1. hash - 其作用就是关联元素value和权重Score,保障元素Value的唯一性,通过元素value来查询对应的Score值
2. 跳跃表 - 其目的在于给元素value排序,根据Score的范围来获取元素列表
# 常用命令
- zadd key [NX|XX] [CH] [INCR] score member [score member ...]
- ZRANGE key start stop [WITHSCORES]
- zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
- ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
- ZINCRBY key increment member
- zrem key member [member ...]
- zcount key min max
- zrank key member

- zadd 将一个或多个 member 元素及其 score 值加入到有序集 key 当中
127.0.0.1:6379> zadd test_rank 10 www.baidu.com
(integer) 1
127.0.0.1:6379> zadd test_rank 20 www.sougo.com
(integer) 1
127.0.0.1:6379> zadd test_rank 30 www.sina.com 40 www.163.com
- zrange 返回有序集 key 中,指定区间(下标)内的成员,按 score 值从小到大来排序
127.0.0.1:6379> ZRANGE test_rank 0 -1
1) "www.baidu.com"
2) "www.sougo.com"
- zrevrange 返回有序集 key 中,指定区间(下标)内的成员,按 score 值从大到小来排序
127.0.0.1:6379> ZREVRANGE test_rank 0 -1 withscores
1) "www.163.com"
2) "40"
3) "www.sina.com"
4) "30"
5) "www.sougo.com"
6) "20"
7) "www.baidu.com"
8) "10"
- zscore 返回有序集 key 中,成员 member 的 score 值
127.0.0.1:6379> ZSCORE test_rank www.163.com
"40"
- 

Redis 哈希(Hash)

# Redis Hash 是一个键值对的集合,是一个string类型的field和value的映射表,适合用来存储对象,类似Java里面的Map<String,Object>
key   Value
user 	field  		value
		name		zhangsan
		age			18	

127.0.0.1:6379> hset user name zhangsan
(integer) 1
127.0.0.1:6379> hmset user age 19 addr sh
OK
127.0.0.1:6379> hkeys user  # 获取哈希集合中的所有的field
1) "name"
2) "age"
3) "addr"
127.0.0.1:6379> hvals user	# 获取哈希集合中的所有的value
1) "zhangsan"
2) "19"
3) "sh"
127.0.0.1:6379> 
- hincrby <key><field><value> 指定哈希表中的field的值加上增量(1|-1)
- hsetnx <key><field><value> 将哈希表key中的域field的值设置为value,如果当前域中field存在则不生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值