zoukankan      html  css  js  c++  java
  • Redis安装与使用

    Redis简介

    Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

    redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
    Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。 
    Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
    redis的官网地址,非常好记,是redis.io。

    常用命令

    就DB来说,Redis成绩已经很惊人了,且不说memcachedb和Tokyo Cabinet之流,就说原版的memcached,速度似乎也只能达到这个级别。Redis根本是使用内存存储,持久化的关键是这三条指令:SAVE BGSAVE LASTSAVE …
    当接收到SAVE指令的时候,Redis就会dump数据到一个文件里面。
    值得一说的是它的独家功能:存储列表和集合,这是它与mc之流相比更有竞争力的地方。
    不介绍mc里面已经有的东东,只列出特殊的:
    TYPE key — 用来获取某key的类型
    KEYS pattern — 匹配所有符合模式的key,比如KEYS * 就列出所有的key了,当然,复杂度O(n)
    RANDOMKEY - 返回随机的一个key
    RENAME oldkeynewkey— key也可以改名
    列表操作,精华
    RPUSH key string — 将某个值加入到一个key列表末尾
    LPUSH key string — 将某个值加入到一个key列表头部
    LLEN key — 列表长度
    LRANGE key start end — 返回列表中某个范围的值,相当于mysql里面的分页查询那样
    LTRIM key start end — 只保留列表中某个范围的值
    LINDEX key index — 获取列表中特定索引号的值,要注意是O(n)复杂度
    LSET key index value — 设置列表中某个位置的值
    LPOP key
    RPOP key — 和上面的LPOP一样,就是类似栈或队列的那种取头取尾指令,可以当成消息队列来使用了
    集合操作
    SADD key member — 增加元素
    SREM key member — 删除元素
    SCARD key — 返回集合大小
    SISMEMBER key member — 判断某个值是否在集合中
    SINTER key1 key2 ... keyN — 获取多个集合的交集元素
    SMEMBERS key — 列出集合的所有元素
    还有Multiple DB的命令,可以更换db,数据可以隔离开,默认是存放在DB 0。
    服务端安装
    因为redis是c编写的,所以我们先安装下gcc
     yum -y install wget
    下载redis压缩包
    http://download.redis.io/releases/redis-5.0.2.tar.gz
    登录WnSCP将压缩包拖入
     解压
    Tar -xvf redis-5.0.2.tar.gz
     
    进入目录
    cd redis-5.0.2/
    重新编译
    Make
    启动Redis服务
    ./src/redis-server(不能操作)
    开启守护线程
    vi redis.conf
    /daemonize查询关键字
    daemonize no 把no改为yes

    指定文件开启服务
    ./src/redis-server redis.conf
    ctrl+c 退出当前程序
     ./src/redis-cli (使用redis),验证成功

     可视化管理工具redis-desktop-manager安装与配置

    双击redis-desktop-manager-0.8.8.384.exe即可

    配置远程登录

    vi /etc/redis/redis.conf                              #编辑redis配置文件

    #bind 127.0.0.1                                       #注释这一行(69行)

    配置密码登录

     vi /etc/redis/redis.conf                              #编辑redis配置文件

    #requirepass foobared #修改前
    requirepass 123456 #修改后

    配置完成密码后,以后登录就密码按下面的命令进行登录
    ./redis-cli -h 127.0.0.1 -p 6379 -a ***

    重启redis

     service redis-server restart

    关闭防火墙

    使用redis Desktop工具连接redis,点击底部加号添加新连接

     Redis支持五种数据类型
       string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)
    
    
    
    
    3. 通过命令操作redis(命令不区分大小写)
       redis默认的数据库有16,mongodb是3个:admin/local/test
       redis-cli                                           #打开redis终端 
       select index                                        #选择指定的数据库,默认的数据库有16,mongodb是3个:admin/local/test
    
       #字符串
       set name                                            #保存
       get name                                            #获得
       type name                                           #查看类型   
       keys *
       del name
    
    
       #哈希(Hash),Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
       hset key attr1 value1 attr2 value2
       hget key attr1
       hgetall key
       
       #列表(List)
       lpush key value1 value2 value3
       llen key
       lindex key index
       lrange key start stop                               #stop可以为-1,到末尾的意思
       
       #Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
       sadd key value                                      #sadd idcard 100  
       sadd key value1 value2 vlaue3
       scard key
       sscan key cursor [MATCH pattern] [COUNT count]
           
     
       exists key                                           #检查key是否存在

  • 相关阅读:
    ListView点击事件
    ListView优化:
    自定义ListView
    ListView简单使用
    mysql中show processlist过滤和杀死线程
    自定义控件
    yum配置中driver-class-name: com.mysql.jdbc.Driver报错
    CSS+HTML
    maven的配置
    Model、ModelMap、ModelAndView的作用及区别
  • 原文地址:https://www.cnblogs.com/xcn123/p/11664641.html
Copyright © 2011-2022 走看看