• Redis 入门知识


    Redis 的前世今生

    Redis的诞生于2008年,由Salvatore Sanfilippo开发。最初作者在开发一个网站时,需要实现一个高性能的队列功能,在使用Mysql无果后,决定自己造一个轮子。自从Salvatore Sanfilippo将 Redis源码在GitHub上开源后,就一发不可收拾。许多重量级的公司将Redis应用到他们的产品中,如国外的Twitter,Instagram,StackOverFlow, Github等,国内的如新浪微博,阿里巴巴,腾讯,百度,搜狐,优酷土豆等。

     


     

    Redis 的特性

     速度快

    • redis是使用C语言实现的,并且源码实现的足够好。
    • redis基于内存存放数据,操作数据相对快。
    • redis使用单线程架构,没有多线程的切换和死锁

    基于键值对数据结构服务器

        redis 所有数据以键值对的方式存放,键是字符串类型,但键所对应的值除了字符串类型,还可以是哈希,列表,集合,有序集合。

    丰富的功能

    • 提供了键过期功能,可以实现缓存
    • 提供发布订阅功能(基于列表的阻塞取值),可以实现消息系统
    • luo基本,可以扩展新的redis命令
    • 提供简单的事务功能,将有关联性的操作放在一起执行
    • 提供流水线(Pipeline)功能,客户端可以将一批命令一次性传到Redis,减少网络开销

    简单稳定

    • 代码量比其他nosql少
    • 单线程模型
    • 不依赖其他类库,redis自己实现了事件处理的相关功能

    客户端语言多

      支持Java,PHP,Python,C, C++,Nodejs

    持久化

      提供了RDB和AOF两种持久化方式,将内存的数据保存到硬盘中。

    主从复制                         

    高可用和分布式

    • 通过redis sentinel实现高可用,保证redis节点的故障发现和故障自动转移。
    • 通过redis cluster实现分布式部署

    Redis 的应用场景

    1. 缓存
    2. 排行榜系统
    3. 计数器应用
    4. 社交网络
    5. 消息队列系统

     


    Redis 如何安装

    redis不推荐在windows系统上部署,因为redis的许多特性都是与系统相关的。redis已在linux上有许多成功案例,绝大多数公司都使用linux系统开发和运维。

    Linux 系统下安装

    wget http://download.redis.io/releases/redis-3.0.7.tar.gz

    $ tar xzf redis-3.0.7.tar.gz

    $ ln -s redis-3.0.7 redis

    $ cd redis

    $ make

    $ make install

    注意:这里使用软连接将redis-3.0.7 连接到redis目录,相当于做了redis-3.0.7的快捷方式,以后更新版本时,可以替换新版本的软连接。

    常用命令

    redis-cli # 是redis的客户端启动命令,最主要功能是连接redis-server,通过tcp网络协议,将要执行的命令发送给redis-server,并取回执行结果

         # 默认连接127.0.0.1:6379的redis-server。可以像这样redis-cli get key 直接运行单条命令,或者通过redis-cli进入交互模式

    redis-cli --help
    redis-cli 3.0.7

    Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
    -h <hostname> Server hostname (default: 127.0.0.1).
    -p <port> Server port (default: 6379).
    -s <socket> Server socket (overrides hostname and port).
    -a <password> Password to use when connecting to the server.
    -r <repeat> Execute specified command N times.
    -i <interval> When -r is used, waits <interval> seconds per command.
    It is possible to specify sub-second times like -i 0.1.
    -n <db> Database number.
    -x Read last argument from STDIN.
    -d <delimiter> Multi-bulk delimiter in for raw formatting (default: ).
    -c Enable cluster mode (follow -ASK and -MOVED redirections).
    ......

    Examples:
    cat /etc/passwd | redis-cli -x set mypasswd
    redis-cli get mypasswd
    redis-cli -r 100 lpush mylist x
    redis-cli -r 100 -i 1 info | grep used_memory_human:
    redis-cli --eval myscript.lua key1 key2 , arg1 arg2 arg3
    redis-cli --scan --pattern '*:12345*'

     

    redis-server # redis-server的启动命令,不带参数直接运行,会将redis-server 运行在本机的127.0.0.1:6379上。

                        # 比较常用的是redis-server ./redis.conf 的方式启动redis-server,其中,redis.conf是Redis目录下一个默认配置文件,我们一般会以此为模板,将其修改为自己需要的启动配置文件。

    redis-server --help
    Usage: ./redis-server [/path/to/redis.conf] [options]
    ./redis-server - (read config from stdin)
    ./redis-server -v or --version
    ./redis-server -h or --help
    ./redis-server --test-memory <megabytes>

    Examples:
    ./redis-server (run the server with default conf)
    ./redis-server /etc/redis/6379.conf
    ./redis-server --port 7777
    ./redis-server --port 7777 --slaveof 127.0.0.1 8888
    ./redis-server /etc/myredis.conf --loglevel verbose

    Sentinel mode:
    ./redis-server /etc/sentinel.conf --sentinel

     

    redis-cli shutdown # 停止Redis服务,停掉的是127.0.0.1:6379 的redis-server服务

            #redis在停止服务时,默认会生成持久化文件。我们可以通过redis-cli shutdown nosave | save 来控制

            # 关闭Redis时,是否生成持久化文件。

     

    以上内容参考 Redis开发与运维 一书

     

     

     

       

  • 相关阅读:
    clearfix 清除浮动的问题
    python第四十五课——继承性之多继承
    Linux基础第六课——grep|awk|sort|uniq
    Linux基础第五课——用户管理
    Linux基础第四课——文件操作
    Linux第三课——目录操作
    Linux基础第二课——系统架构
    Linux基础第一课——基础知识了解
    01 http协议概念及工作流程
    18- php Redis扩展编译
  • 原文地址:https://www.cnblogs.com/linyihai/p/7425555.html
Copyright © 2020-2023  润新知