初识Redis

(一)NoSql

关系型数据库:指以关系(行和列组成的二维表)来建模的数据库。
NoSQL泛指非关系型数据库。非关系型数据库严格而言不是一种数据库,应该是一个数据结构化存储方法的集合。其中redis就是非关系型数据库。

  • nosql分类:
    在这里插入图片描述redis是一个key-vlue类型Nosql!主要用途用来做缓存,查询速度非常快,因为是给予内存查询。

(二)初识Redis

  1. 特点
    ① 数据存储:数据保存在内存中,存取速度快,还能不定期持久化到硬盘中,保障数据的安全性
    ② Value类型:支持存储的value类型相对memcached更多,包括string(字符串)、list(链表)、set(集合)、 zset(sorted set --有序集合)和hash(哈希类型),很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库(如MySQL)起到很好的补充作用。
    ④ 客户端支持:提供了Java,C/C++,C#,PHP,JavaScript等客户端,使用很方便。
    ⑤超大并发支持:Redis支持集群(主从同步)。数据可以主服务器向任意数量从的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。(单点故障)
    ⑥ 支持订阅/发布(subscribe/publish)功能 QQ群

  2. 使用场景
    ① 中央缓存
    ② 计数器
    ③ 实时防攻击系统
    ④ 排行榜
    ⑤ 数据的有效期(购物券、优惠券、红包)
    ⑥ 使用set存值,可自动去重
    ⑦ 队列
    ⑧ 消息订阅

  3. 软件认识

  4. 常用指令
    auth pwd;
    set key value; //赋值
    get key; //取值
    mset k1 v1 k2 v2 … //批量添加
    mget k1 k2 … //批量获取
    incr key //加1
    incrBy key step // 添加指定步长
    decr key
    decrBy key step
    keys * ///获取所有的key
    del key //删除指定key
    flushdb //清空指定数据库
    flushall //清空所有数据库
    select index //通过索引选择数据库(0-15)
    expire key xx //设置key的过期时间(xx秒后过期)
    ttl key //查看key的过期时间

面试题:redis怎么实现栈和队列?
栈和队列都用list,控制一边进同一边出就是栈:
进和出同一个方向: Lpush pc 111 lpop pc
一边进另一边出就是队列:先进先出:FIFO
进和出的方向相反就ok:
Lpush pc 111 rpop pc

  1. list集合
    lpush key value //将一个或多个值 value 插入到列表 key 的表头(最左边)
    rpush key value //将一个或多个值 value

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值