Redis入门

NOSQL概述

对比传统关系型数据库,优势有三

1.NOSQL支持更高的并发量,关系型数据库每秒读写瓶颈仅有万次
2.NOSQL支持海量数据的高效率存储和访问,从上亿条数据中查找也很快
3.高可扩展性和高可用性
4.灵活的数据模型

NOSQL的四大存储类型

在这里插入图片描述

Redis应用场景

缓存,秒杀,任务队列,排行榜,网站访问统计,数据过期处理,分布式集群架构中的session分离

Redis存储容器

String Hash List Set SortedSet

基础语法
通用操作
代码解释
keys *取得所有键
exists name判断键是否存在
del name根据键删除键值对
rename name newname重命名键名
expire name 1000设置键值对过期时间,单位是秒
ttl name查询键值对剩余超时时间
type name查询指定键数据类型
flushall清空当前数据库
String
键值都为String
代码解释
set name klh设置键值对
get name根据键取出值
getset name wyx先取出值再设置新值
del name根据键删除键值对
incr num,decr num根据键将可以转化为整型的字符串±1,若不能转,则报错,若没有这个键值对,则默认值为0
incrby num1 5,decrby num1 5指定±步长
append name xzz根据键将新值追加到旧值上,可以作用于整型,也追加而不是增长
Hash
键为String,值为map,以下为方便描述称前者为Hash键,后者键为map键
代码解释
hset myhash username klh为Hash键为myhash的map设置map键为username,值为klh的键值对
hget myhash username根据hash键和map键获取值
hmset myhash username klh password 123指定hash键设置多个map键值对
hmget myhash username password指定hash键根据多个map键获取多个值
hgetall myhash指定hash键,获取所有map键值对
hdel myhash username password指定hash键,删除多个map键的值
del删除指定hash
hincrby myhash password 5指定hash键,map键,自定义步长增长
hexists myhash username指定hash键,判断map键是否存在
hkeys myhash指定hash键,取得所有map键
hvals myhash指定hash键,取得所有map值
hlen myhash指定hash键,取得map长度
List
首尾操作 左侧为首,右侧为尾
代码解释
lpush mylist a b c指定键为mylist,从左侧依次插入a b c ,插入完数据为cba
rpush mylist 123指定键为mylist,从左侧依次插入1 2 3,插入完数据为123
lrange mylist 0 -1根据键查询,范围为索引0到-1,-1表示最后一位,-2表示倒数第二位,正数表示索引为几
lpop mylist从左侧弹出一个元素
rpop mylist从右侧弹出一个元素
llen mylist查询键为mylist的长度
扩展
lpushx/rpushx mylist q仅当键名为mylist的list已经存在的时候才插入
lrem mylist 2(count) 3(value)删除count个值为value的元素,
`count=0删除全部,count<0,从左侧开始删除,count>0,右侧开始删除
lset mylist 3(索引) mmm将指定索引的位置替换为新值
linsert mylist before/after b d在左数第一个b之前(之后)插入d
rpoplpush mylist1 mylist2将mylist1右侧第一个元素弹出压入mylist2左侧
Set
使用场景:1.存储唯一性数据 2.使用差集交集并集操作,维护数据对象之间的关联关系,
代码解释
sadd myset a插入数据
srem myset a b根据元素值移除数据,可移除多个
smembers myset查看所有元素值
sismember myset a查询是否包含某元素值
sdiff myset1 myset2求两个set的差集,以第一个set为准
sinter myset1 myset2求交集
sunion myset1 myset2求并集
扩展
scard myset查询元素个数
srandmember myset随机返回元素
sdiffstore,sinterstore,sunionstore myset myset1 newset求差交并集并存入新set
SortedSet
每一个元素都有一个分数与之关联,并且分数可重复,根据分数排序.
代码解释
zadd mysort 70 zhang 80 li插入分数和元素(分数在前,元素在后)
zscore mysort zhang根据元素查询分数
zcard mysort查询元素个数
zrem mysort zhang li根据元素值删除元素
zrange mysort 0 -1 (withscores)查询mysort中所有元素(附带分数),默认分数从小到大
zrevrange mysort 0 -1 (withscores)查询mysort中所有元素(附带分数)按分数从大到小
zremrangebyrank mysort 0 4按排名范围删除 从零开始删除四个
zremrangebyscore mysort 80 100按分数范围删除 从80到100
扩展
zrangebyscore mysort 70 100 (withscores limit 0 2)查询指定分数范围的元素
zincrby mysort 3 zhang根据元素值为元素增加指定步长的分数
zcount mysort 80 100根据指定分数范围查询元素个数
Redis的特性

1.多数据库
Redis中包含16个数据库,编号从0到15,默认使用0号数据库,通过select 1来选择使用1号数据库,
通过使用move mysort 2来将当前数据库的键为mysort的键值对移动到2号数据库.
2.支持事务
multi开启事务 exec提交 discard回滚

Redis的持久化策略
策略名优势劣势
RDB,定时将数据集快照持久化到硬盘上1.只包含一个文件,备份拷贝都很方便1.无法完全保证数据不丢失
`2.占用系统资源少,不用实时记录2.子进程定时持久化时,可能会导致Redis停止工作几百毫秒
`3.数据量大的话,重启效率比AOF更高
AOF,以日志形式记录每一条执行过的命令1.可以保证数据不丢失日志文件比RDB的文件大
`redis -check -aof检查数据一致性效率低于RDB
`如果日志过大,redis自动启动重写机制
无持久化仅用作缓存
同时采用RDB与AOF
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值