zoukankan      html  css  js  c++  java
  • 【Redis】基础知识、常用命令

    Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)与范围查询,bitmaps,hyperloglogs 和地理空间(geospatial) 索引半径查询。

    Redis 内置了复制(replication),LUA脚本(Lua scripting),LRU驱动事件(LRU eviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

    一、redis是单线程

    redis是基于内存操作的,cpu并不是redis的性能瓶颈,它的瓶颈取决于机器的内存和网络带宽,所以能用单线程实现那就用单线程好了。

    那么为什么用单线程还能这么快?

    首先有2个误区先要明确:

    • 高性能的服务器不一定是多线程的。
    • 多线程也不是一定比单线程效率高。

    redis是将所有的数据放到内存里去,多线程的话反而会存在cpu切换上下文从而增加耗时,而对内存系统来说,没有上下文的切换,单线程操作效率就是最高的。

    二、关于数据库的常用操作

    1. 默认数据库

    redis默认有16个数据库,默认使用是第一个数据库(下标为0)。可以查看下配置文件,里面有database 16

    2. 切换数据库

    select 3,可以切换到第4个数据库。

    3. 查看数据库大小

    dbsize可以查看当前数据库大小。

    这时,给数据库里set一个值,再次查看数据库大小,就变化了。

    4. 清空数据库

    清空当前的数据库

    flushdb
    

    清空所有的数据库

    flushall
    

    三、关于Redis-Key的常用操作

    1. set 设置key 和 value

    set name pingguo222
    

    2. keys * 查看所有的key

    可以查看所有的key。这里切换回默认的数据库,查看所有key。

    keys *
    

    3. get key 的 value

    get name
    

    4. exists key 是否存在key

    exists name
    

    存在,则返回1,不存在则返回0。

    5. move 移动 key

    MOVE 命令是将当前数据库的 key 移动到给定的数据库 db 当中。

    move name 0
    

    比如当前所在3数据库,命令是 把当前3数据库下的name移动到 0数据库下。如果成功了返回1,失败了返回0。

    6. 设置key过期时间

    我设置age 10s后过期,等10s后再次get就拿不到值了。

    expire age 10
    

    7. 查看key的剩余时间

    我设置name过期时间100s,使用ttl查看。

    ttl name
    

    8. 查看key的类型

    type name
    

    命令实际上有很多,官网提供了查询命令的地方,后面啥不会就查啥。

    --不要用肉体的勤奋,去掩盖思考的懒惰--
  • 相关阅读:
    java中的泛型
    那些java中的包装类
    那些java中的内部类
    那些java中的常用类(二)
    那些java中的常用类(一)
    java中的反射机制浅析
    java中的垃圾回收机制浅析
    java中equals与==的用法浅析
    在iOS项目中,这样才能完美的修改项目名称
    最新的 iOS 申请证书与发布流程
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/14883588.html
Copyright © 2011-2022 走看看