一、字符串
以实际输入的命令为例
1.建立键值对
1 |
set bar 1 |
建立了一个键值对,键名叫bar,键值是1
2.判断键是否存在
1 |
exists bar |
判断键名bar是否存在 若存在则返回1,不存在返回0
3.删除键
1 |
del bar |
删除键名为bar的键值对 若删除成功则返回删除的个数,删除失败(不存在)则返回0
4.查看所有的键
1 |
keys * |
5.获得键值的数据类型
1 |
type foo |
获得键名为foo的键值类型 返回值类型可能有 string(字符串),hash(散列),list(列表),set(集合),zset(有序集合)
6.获得键对应的值
1 |
get foo |
获得键名为foo的键值
7.自增
1 |
incr foo |
创建一个foo的键值对,并自增为1 但是运行type foo 时,显示为string 增加特定数值
1 |
incrby foo 3 |
使foo增加3
8.自减
1 |
decr foo |
减小1个数值
1 |
decrby foo 3 |
减小3个数值
9.增加指定浮点数
1 |
incrbyfloat bar 2.5 |
bar增加指定的浮点数2.5
10.向尾部追加值
1 |
append bar hehe |
1 |
append bar " world" |
如果是要追加带空格的内容,则要用空格引起来 返回值是一个数字,代表现在键值的长度
11.获取字符串长度
1 |
strlen bar |
返回值是一个数字,代表现在的字符串长度
12.同时设置多个键值对
1 |
mset key1 value1 key2 value2 key3 value3 |
13.同时获得多个键值对应内容
1 |
mget key1 key2 |
1 |
1)value1 |
二、散列
1.赋值和取值
1 |
hset key field value |
例如:
1 |
hset car price 500 |
1 |
hget car price |
同时赋值多个字段的值
1 |
hmset car price 500 name BMW |
1 |
hmget car price name |
2.判断字段是否存在
1 |
hexists car price |
3.只获得字段名
1 |
hkeys car |
4.只获得字段值
1 |
hvals car |
5.获得字段数量
1 |
hlen key |
三、列表
1.向两边添加元素
1 |
lpush group 1 |
1 |
rpush group 2 |
结果
1 |
1) "1" |
lpush 是向左边添加元素,rpush 是向右边添加元素。
2. 从两边弹出元素
1 |
lpop group |
1 |
rpop group |
lpop 是从左边弹出元素, rpop 是从右边弹出元素,显示元素的值
3.获取列表中元素的个数
1 |
llen group |
4.获得列表片段
1 |
lrange group 0 3 |
1 |
lrange group -2 -1 |
其中 -2 -1 为负索引,这个也是可行的。-2代表倒数第二个元素,-1代表倒数第一个元素。 特殊地:获取所有元素则可以这么写
1 |
lrange group 0 -1 |
5.删除列表中指定的值
1 |
lrem group count value |
当count > 0,它会从左边开始删除前count个值为value的元素。 当count < 0,它会从右边开始删除前|count|个值为value的元素。 但count = 0,它会删除所有值为value的元素。
6.获得索引处的值
1 |
lindex group 0 |
获得索引0位置的元素值
7.设置索引处的值
1 |
lset group 1 5 |
将 group 索引 1 处的值改为 5
8.只保留特定的片段
1 |
ltrim group 0 1 |
只保留索引0到1的值,其余的删除
9.向列表中插入元素
1 |
linsert group after 2 5 |
从左边开始查询,找到数字2,在后面插入数字5 insert group before 2 5 从左边开始查询,找到数字2,在前面插入数字5
四、集合
1.添加元素
1 |
sadd hello 2 4 5 |
向集合中添加2 4 5元素,返回值是成功加入的元素数量
2.删除元素
srem hello 4 5 从集合中删除4 5,返回值是成功删除的元素数量
3.获得集合中所有元素
1 |
smembers hello |
4.判断元素是否在集合中
sismember hello 2 判断2是否在集合hello中 存在返回1,不存在返回0
5.集合的运算
差集
1 |
sdiff setA setB |
返回值是集合,返回的是存在集合A中但是不存在B中的元素集合
交集
1 |
sinter setA setB |
返回值是setA和setB的交集
并集
1 |
sunion setA setB |
6.获得集合大小
1 |
scard |
返回值是数目
7.随机获得集合中的数字
1 |
srandmember |
五、有序集合
1.增加元素
增加时需要指定元素的分数和元素的名称
1 |
zadd score 89 Tom 45 Amy |
分数不仅可以是整数,还可以是浮点数
1 |
zadd score 2.3 Mike |
1 |
zadd score +inf Bob |
2.获得元素分数
1 |
zscore score Tom |
如果不存在,返回(nil)
3.获得排名在某个范围内的元素列表
1 |
zrange score 0 2 |
带分数显示
1 |
zrange score 0 -1 withscores |
4.获得指定分数范围的元素
1 |
zrangebyscore score 45 80 |
获得45分到80分的元素,闭区间 如果不想是闭区间,则可以在索引前面加上(
1 |
zrangebyscore score (45 80 |
5.取某几个值
zrangebyscore score (45 80 limit 0 3 取(45,80]之间的元素,从第一个开始,取3个
6.增加某个元素分数
1 |
zincrby score 5 Tom |
给某个元素加5分
1 |
zincrby score -2 Tom |
给某个元素减2分
7.给某个元素重新赋值分数
同样用zadd命令
1 |
zadd score 22 Tom |
8.获得集合中元素的数量
1 |
zcard score |
9.获得指定分数范围内元素个数
1 |
zcount score 79 90 |
10.删除一个或者多个元素
1 |
zrem score Tom |
11.按照分数删除元素
1 |
zremrangebyrank score 0 1 |
它先会把它按照分数从小到大排列,然后删除索引位置的元素
12.按照分数删除元素
1 |
zremrangebyscore score 28 99 |
他会删除指定分数范围内的元素
13.获得元素排名
1 |
zrank score Tom |
获得按照分数从小到大排列后,Tom的索引位置 反向排名
1 |
zrevrank score Tom |
返回从大到小排列后,Tom的索引位置