字符串string
hash(哈希)
set集合
list列表
zset有序集合
Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。
Redis全称为:Remote Dictionary Server,该软件使用C语言编写,Redis是一个key-value存储系统,
它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。
string操作
创建:
set name xxx set age 18
查看:
get name # "xxx"
get age # "18"
设置过期时间:
expire name 20(秒)
查看时间:(没设置时间则返回-1,永久;不存在的则返回-2)
ttl name
创建并同时设置时间:
setex name 20 xxx 或 set name xxx ex 20
字符串追加:
append name 666 # xxx666
多字符串创建:
mset name xxx age 18 sex nan (不能用中文) key value key value .......
多字符串查看:
mget name age sex key key ....
查看所有的键值:
keys *
删除:(适用于所有的类型)
del key
检查是否存在:(1或0,布尔值,True或Flase)
exists name # 1
查看类型:
type name
运算:
incr num (自加1)
decr num(自减1)
incrby num 10 (自加10)
decrby num 10 (自减10)
哈希,形如:key : (field : value)
创建:(可以理解为users用户,name为xxx)
hset users name xxx
查看:
hget users name # "xxx"
删除:
hdel users name
多创建:
hmset users name xxx age 18 sex nan(不能有中文)
多查看:
hmget users name age sex ...
查看全部键值对:
hgetall users
# 输出:
# 1) "name"
# 2) "xxx"
# 3) "age"
# 4) "18"
# 5) "sex"
# 6) "nan"
查看全部键:
hkeys users
# 输出:
# 1) "name"
# 2) "age"
# 3) "sex"
查看全部值:
hvals users
# 输出:
# 1) "xxx"
# 2) "18"
# 3) "nan"
查看长度:
hlen users # 3
创建:(集合的特点是:有序,无重复)
sadd set 1 2 3 4 5 6
查看:
smembers set
删除元素:
srem set 3 # 还剩 1 2 4 5 6
移动:
sadd set2 3 4 5 6 7 8
smove set set2 1
# set (2 4 5 6)
# set2 (1 3 4 5 6 7 8)
是否存在于集合:
sismember set 5 # 返回1 于 0
交集:
sinter set set2
# 4 5 6
并集:
sunion set set2
# 1 2 3 4 5 6 7 8
差集:
sdiff set2 set
# 1 2 3 7 8
list列表
首先,需要先了解栈和队列的概念:
栈 先进后出:类比弹夹上的子弹,最后上进弹夹的子弹第一个使用,砌墙的板砖,后来居上
队列 先进先出:排队打饭,先到先得
创建列表:
左添加:(栈的形式添加)
lpush list 1 2 3 4 5 # 输出: 1) "5" 2) "4" 3) "3" 4) "2" 5) "1"
右添加:(队列的形式添加)
rpush list 1 2 3 4 5 # 输出: 1) "1" 2) "2" 3) "3" 4) "4" 5) "5"
查看列表:
lrange list 0 -1 # 索引方式查看 0(第一位) -1 (最后一位)
查看长度:
llen list # 返回数字
查看指定元素:(索引)
lindex list 3 # 从第零位开始 此处查看的是第4个元素
删除元素:
lpop list # 从左边开始删除 rpop list # 从右边开始删除
删除指定个数的元素:
lrem list 3(个数) 5(元素)
# 表示从上往下删除3个‘5’这个元素
# 如果是-3 则表示从下往上删除3个‘5’这个元素
zset有序集合
创建:(有序集合存在一个权重的概念)
zadd zset 1 a 2 b 3 c 4 d 5 e 6 f 7 g
# 输出:
# 1) "a"
# 2) "b"
# 3) "c"
# 4) "d"
# 5) "e"
# 6) "f"
# 7) "g"
# 左边权重,右边元素
查看:
zrange zset 0 -1 # 索引值,第一个和最后一个
倒序查看:
zrevrange zet 0 -1 # 输出: # 1) "g" # 2) "f" # 3) "e" # 4) "d" # 5) "c" # 6) "b" # 7) "a"
删除:
zrem zset g(元素)
元素值查看查看对应索引值:
zrank zset a # 0(索引值)
倒叙查看元素值相对对索引值;
zrevrank zset a # 6 ('g'之前已被删除)
查看个数:
zcard zset # 6
查看权重:
zscore zset a # 1(权重) zscore zset f # 6(权重)
返回有序集合中score(权重)在给定区间的元素:
zrangebyscore zset 3 5 withscores # 查看权重在3 和5之间的元素(闭区间) # 输出:
1) "c"
2) "3"
3) "d"
4) "4"
5) "e"
6) "5"
返回有序集合中score(权重)在给定区间的数量:
zcount zset 3 5 # 权重在3和5之间的元素个数 # 输出: 3
删除有序集合中索引值在给定的区间的元素:
zremrangebyrank zset 3 5 # 删除索引值3到5之间的元素(闭区间) # 返回数字3 表示d e f 已经被删除了 # 还剩a b c
删除有序集合中权重在给定区间的元素:
zremrangebyscore zset 1 3 # 删除权重在1到3的(闭区间) # 返回数字3 表示a b c 已经被删除了 # 现有序集合zset为空