zoukankan      html  css  js  c++  java
  • Nosql之Redis篇

    一、QuickStart

    1、Redis简介:

      redis是一个性能优秀的内存数据库,通过key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

      Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。redis的安装配置,比较简单,详见官方网站。

    2、下载安装

    wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
    tar -zxvf
    tcl8.6.1-src.tar.gz
    cd tcl8.6.1/unix
    ./configure && make
    make install (管理员权限)
    wget http://download.redis.io/redis-stable.tar.gz
    tar -zxvf redis-stable.tar.gz
    cd redis-stable
    make
    make test
    make install (管理员权限)

    安装完成,将src下的 redis-server和redis-cli放到 /usr/local/bin/ 下,方便使用

    cp redis-server /usr/local/bin/
    cp redis-cli /usr/local/bin/

    3、测试

    启动服务器:

    redis-server

    检测是否运行:redis-cli ping 返回PONG 则运行OK

    二、客户端

      Redis支持很多编程语言的客户端,有C、C#、C++、Clojure、Common Lisp、Erlang、Go、Lua、Objective-C、PHP、Ruby、Scala,甚至更时髦的Node.js,当然,更少不了Java的客户端支持。Redis官方列出的Java客户端也有少,有Jedis、JRedis、JDBC-Redis、RJC等,当然,Jedis是Redis官方首选的Java客户端开发包。

    Jedis的pom依赖:

    <dependency>
              <groupId>redis.clients</groupId>
              <artifactId>jedis</artifactId>
              <version>2.2.1</version>
    </dependency>

    1、The Easiest Sample

    复制代码
    //1. 与redis-server建立连接,默认端口6379
    Jedis jedis = new Jedis(“192.168.7.1”, 6379); 
    //2. 设值
    jedis.set("redis", "Advanced key-value store”);
    //3. 去除第二步存入的键值
    String value = jedis.get("redis");
    System.out.println("redis=" + value);
    复制代码

    2 、客户端timeoutException,被防火墙阻止了

    复制代码
    编辑 vi /etc/sysconfig/iptables
    在iptables的加入一个新的规则,记得要在中间加入,不然无效

    # Firewall configuration written by system-config-firewall
    # Manual customization of this file is not recommended.
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    # redis
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT

    重启服务 service iptables restart

    复制代码
     

    参考:

    http://redis.io

    http://www.cnblogs.com/nexiyi/p/3454898.html

  • 相关阅读:
    JSMpeg的使用
    Python模拟键盘输入
    Python处理文件打开窗口
    Airtest网页自动化批量执行脚本
    使用AirTest进行网页自动化测试
    iOS14适配
    Vue ref refs
    uni-app 离线打包后提示 打包时未添加Native UI、File模块
    uni-app 自定义弹窗组件、slot插槽
    Taro react事件传参 路由传参
  • 原文地址:https://www.cnblogs.com/hero4china/p/3657078.html
Copyright © 2011-2022 走看看