NoSql Redis(键值对数据库)的学习

一、具有代表性的非关系型数据库
Redis(键值对数据库)、mongoDB(文档数据库)、Hbesa(列存储数据库)、Neo4j(图形数据库)

二、Redis 五种数据类型

1、字符串类型
2、散列类型
3、列表类型
4、集合类型
5、有序集合类型

三、Redis常用命令
1、字符串
set key value //赋值
get key //获取指定key的value
gerset key value //先获取指定key的value再将value修改为指定的value
del key //删除指定key
incr key //给指定key的值加一
decr key //给指定的key的值减一
incrby key increment //给指定的key的值加increment
decrby key decrement //给指定的key的值减decrement

2、hash(散列表)
hset key field value //为指定的key设置一个含有field、value的值
hmset key field value field2 value2 //给指定的key设置多个含有field、value的值
hget key field //获取指定key、field的值
hmget key field field2 //获取多个key、field的值
hgetall key //获取key下所有field的值
hdel key field1 field2 //删除指定key下指定field的值(可以单个或者多个)
hdel key //删除指定key下所有field的值
hexists key field //查看指定key的field是否存在
hlen key //查看指定key下field的个数
hkeys key //获取指定key下所有的field
hvals key //获取指定key下所有的value

3、list
lpush key value1 value2 //给指定的key从头部开始添加value,如果key不存在则会自动创建
rpush key value1 value2 //给指定的key从尾部开始添加value,如果key不存在同样自动创建
lrange key 0 -1 //获取指定key从开始位置到结束位置的值,从0开始-1为最后一位
lpop key //将指定key头部的值弹出,如果key不存在返回nil,如果存在返回头部元素
rpop key //将指定key尾部的值弹出,如果key不存在返回nil,如果存在返回尾部元素
llen key //获取指定key链表的长度,如果key不存在返回0
lpushx key value //给指定key从头部开始添加value,只有key存在才能添加,不存在返回0,并且只能添加一个值
rpushx key value //给指定key从尾部开始添加value,同上
lrem key index value //删除指定key的指定值,如果index大于0则删除index位置上与value相等的值,小于则从尾部开始,等于0则删除链表中所有与value相等的值
lset key index value //给指定位置上的value修改为指定值,如果角标不存在则报错((error) ERR index out of range)
linsert key before value newValue //给指定key链表中指定value前添加一个新value,从头开始
linsert key after value newValue //给指定key链表中指定value前添加一个新value,从尾开始
rpoplpush key key2 //将指定key的尾部元素弹出压入key2的头部,如果两个key相同,则在同一个链表中执行尾弹头压的操作

4、set
sadd key value1 value2 //给指定key中添加数据,元素不重复
smembers key //获取指定key中的元素
srem key members value1 value2 //删除指定key中的指定value
sismember key value //判断指定key中的指定value值是否存在,存在返回1,不存在返回0或者该key本身
sdiff key key2 //获取key自身元素中与key2不相同的元素(差集)
sinter key key2 //获取key与key2中相同的元素(交集)
sunion key key2 //将key与key2元素合并返回,不包括相同元素(并集)
scard key //获取指定key中元素的个数
srandmember key //随机获取指定key中的一个元素
sdiffstore key key1 key2 //将key1与key2的差集存储到key中
sinterstore key key1 key2 //将key1与key2的交集存储到key中
sunionstore key key1 key2 //将key1与key2的并集存储到key中

5、sortedset
zadd key score name score2 name //将 score name 存储到指定的key中,如果有相同的name则覆盖之前的,返回值为新加入的元素,之前存在的不算
zscore key name //获取指定key中name的score
zcard key //获取指定key中成员数量
zrem key name name2 //删除指定key中指定name、name2的值,可以指定多个
zrange key start end withscores //获取指定key中起始位置到结束位置的元素,不加withscores则只返回name,加上将score一并返回,从小到大
zrevrange key start end withscores//获取指定key中起始位置到结束位置元素以从大到小的顺序返回,包含两端
zremrangebyrank key start end //按照指定的排名范围删除元素,排名为分数从小到大,排名从0开始
zremrangebyscore key min max //按照指定的分数范围删除元素,包含min和max
zrangebyscore key min max withscores //返回指定key中指定分数范围的元素从小大
zrangebyscore key min max withscores limit start end //返回指定key中指定分数范围中指定角标范围的元素
zincrby key score name //将指定key中指定name的元素的分数在原有基础上加score,并返回增加后的分数
zcount key min max //返回指定key中指定分数范围中元素的个数,包括起始和结束
zrank key name //返回指定key中指定name元素的排名(从小到大),起始位置从0开始
zrevrank key name //返回指定key中指定name元素的排名(从大到小),起始位置从0开始

6、keys通用操作
keys * //返回所有的key
keys xx* //返回所有以xx开头的key
del key1 key2 //删除指定的key
exists key //判断指定key是否存在,存在为1,不存在为0
renname key newKey //将key重命名为newKey
expire key //设置过期时间,单位秒
ttl key //获取指定key过期时间,-1为没有设置过期时间,-2为已经超时不存在
type key //获取指定key的类型,返回值为字符串格式,不存在返回none

猜你喜欢

转载自blog.csdn.net/m0_37602117/article/details/79152220