Redis数据库总结
简介
与MySQL不同,Redis是一个基于内存的数据库,所以相对于基于硬盘的MySQL,它的存储空间更小,但执行速度更快。Redis由意大利人Salvatore Sanfilippo开发的一款内存高速缓存数据库,该软件由C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如string、list、set、zset、hash。不同于MySQL,redis是没有账户和密码的。
安装及进入退出
Ubuntu下的安装:
sudo apt-get update #更新
sudo apt-get install redis-server #安装redis
进入:
reids-cli
退出:
exit
string类型
string类型包含了整形、浮点型、字符串。
- 设置
set key value
- 获取
get key
- 查看过期时间:返回-1表示永久、-2表示不存在、其他数字表示具体的有效时间
ttl key
- 设置过期时间
expire key seconds #对已存在的key
set key value ex seconds #设置key的同时设置有效时间
setex key seconds value #设置key的同时设置有效时间
- 追加:返回值的长度
append key value
- 同时设置、获取多个
mset key value key value...
mget key key ...
- 查看所有key
keys *
- 删除key
del key
- 查看key是否存在:存在返回1,不存在返回0
exists key
- 查看key类型
type key
- 对key的value进行运算,返回值
incr key #加一
decr key #减一
incrby key x #加x
decrby key x #减x
lise类型
list的类型是实现队和栈的操作,元素不唯一,队列是先进先出,栈是先进后出。
- 设置:左添加是实现栈的操作,右添加是实现队列的操作。对已存在的key,则是实现在后面添加,返回的是元素的个数。
lpush key value #栈
rpush keu value #队
- 查看
lrange key start stop
- 获取list的元素个数
llen key
- 查看指定索引的元素
lindex key index
- 删除
lpop key #删除最先出来的元素
rpop key #删除最后出来的元素
lrem key count value #count是删除最大数量,value是指定删除的元素值,count为0,表示删除所有指定的value,count<0表示从右往左删除
hash类型
hash类型的基本格式是key:(filed:value),它是一个string类型的field和value的映射表,特别适合用于存储对象,hash的key必须是唯一的。
- 设置
hset key field value
- 获取
hget key field
- 删除
hdel key field
- 设置多个
hmset key field value field value ...
- 获取多个
hmget key field field...
- 获取全部field
hkeys key
- 获取全部的value
hvals key
- 获取全部的field value
hgetall key
- 获取field的个数
hlen key
- 获取field的类型
type key
set类型
set类型即集合的意思,里面的元素是唯一且无序的,一个键可对应多个值。
- 设置
sadd key value [value] [value]...
- 获取
smembers key
- 删除:分指定删除和随机删除
srem key value #指定删除
spop key #随机删除
- 移动一个集合的值到另一个集合:移动成功返回1,失败返回0。
smove key1 key2 value #移动key1的value到key2中
- 判断集合存在某个值:存在返回1,不存在返回0。
sismember key value
- 取交集及把交集部分合并到新的集合中
sinter key1 key2 #取交集
sinterstore newkey key1 key2 #交集合并到集合
- 取并集及把并集部分合并到新的集合中
sunion key1 key2
sunionstore newkey key1 key2
- 取差集及把差集部分合并到新的集合中
sdiff key1 key2
sdiffstore newkey key1 key2
- 获取集合个数
scard key
- 随即返回一个元素
srandmember key
sorted set类型
有序集合的基本格式是key score value [score value]...,里面的元素是唯一且有序的,其有序的依据就是score,即权重,权重越大,顺序就排的越前面。
设置
zadd key score value [score value]...
获取:分正序获取和倒序获取
zrange key start stop #正序
zrevrange key start stop #倒序
删除
zrem key value
返回索引:分为正序索引和倒序索引
zrank key value #正序
zrevrank key value #倒序
查看有序集合的元素个数
zcard key
返回给定权重范围内的元素
zrangebyscore key start stop withscores
返回给定权重范围内的元素个数
zcount key start stop
查看元素的权重值
zscore key value
删除指定索引的元素
zremrangebyrank key start stop
删除指定权重范围内的元素
zremrangebyscore key start stop