zoukankan      html  css  js  c++  java
  • 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开发与运维 一书

     

     

     

       

  • 相关阅读:
    AcWing 1027. 方格取数 dp
    AcWing 1014. 登山 dp
    acwing 482. 合唱队形 dp
    LeetCode 1463. 摘樱桃II dp
    LeetCode 100. 相同的树 树的遍历
    LeetCode 336. 回文对 哈希
    LeetCode 815. 公交路线 最短路 哈希
    算法问题实战策略 DARPA大挑战 二分
    算法问题实战策略 LUNCHBOX 贪心
    AcWing 1100. 抓住那头牛 BFS
  • 原文地址:https://www.cnblogs.com/linyihai/p/7425555.html
Copyright © 2011-2022 走看看