Redis数据库

1.认识Redis

  • NoSQL(not only sql):一类新出现的数据库,特点:

          1)不支持SQL语法

          2)存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是Key Value形式

          3)NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景

          4)NoSQL中的产品种类相当多:Mongodb    Redis     Hbase hadoop       Cassandra hadoop

  • Redis特性

          1)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

          2)Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

          3)Redis支持数据的备份,即master-slave模式的数据备份。

  • Redis安装

        sudo apt-get update

        sudo apt-get install redis-sever

  • Redis服务端和客户端命令

        服务器端

              命令:redis-server

              帮助文档:redis -sever -help

              启动:sudo service redis start

              停止:sudo service redis stop

              重启:sudo service redis restart

       客户端

              连接redis:redis -cli

              帮助文档:redis -cli -help

              数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库    select n

      Redis数据库

     (此为服务端的登陆情况,一般服务端只用于查看,不进行操作,在客户端才进行操作,ctrl+z退出)

      Redis数据库

      (客户端如图即进入成功。默认为0号数据库,select 6 使用6号数据库)

2.常用数据类型和命令

  • 数据结构

        redis是key-value的数据结构,每条数据都是一个键值对

        键的类型是字符串,键不能重复

        值得类型分五种:string 字符型      hash 哈希      list 列表       set 集合        zset  有序集合

  • string类型

           set key value  设置key的值为value

           get key            获取key的值

           append key value    追加

           set key value ex seconds   创建的时候指定过期时间

           expire  key seconds   设置过期时间

           ttl  key    查看生存时间(-1则表示永久存在,-2表示不存在)

           persist key 删除过期时间(有过期时间才能删除,否则删除失败返回0,0个成功)

           Redis数据库

          keys *      查看所有key

          del  key     删除

          exists key   查看key是否存在

          rename key newkey   重命名

          type key 查看key类型

          Redis数据库

  • List 类型

         lpush key value[ value2  value3  ...]   左添加(可添加多个),返回元素个数

         rpush key value   右添加

         lindex key index  查看下标为index的值

         lrange key start stop 查看[start, stop]的值

         llen key      查看元素个数

         lset key index value    修改

         lpop   key      删除左边第一个

         rpop  key       删除右边第一个

         lrem key count value  删除count个value

         Redis数据库

         Redis数据库

  • Hash 类型

        例:user   {name   :    sakura}    犹如字典的映射表

                key      field           value

         hset key field value   设置一个

         hmset key field1 value1 field2 value2 …     设置多个

         hget key field      获取key的field值

         hmget key field1 field2  获取多个

         hvals key   获取全部values

         hkeys key   获取全部field

         hgetall key  获取所有field和value

         hlen key     查看有几个键值对

         Redis数据库

  • Set 类型

       无序字符集合,添加相同元素只保留其一

       sadd key member1 [member2 member3]  增加

       scard key      返回长度

       smembers key   查看所有元素

       srem key member1 [member2 member3]  指定删除

       spop key  随即删除

       sismember key member   判断集合中是否存在该值

       Redis数据库

  • Sorted Set 类型

       每一个成员都会有一个分数(score)与之关联。

       成员是唯一的,但是分数(score)却是可以重复的

       zadd key score1 member1 [score2 member2]     设置

       zcount key min max         返回score值在区间的元素个数

      zcard key              返回zset元素个数

      zscore KEY MEMBER        查看score值

      zrange key start stop         按照索引返回区间成员

      zrangebyscore key min max     按照score值返回区间成员

      zrem key member [member …]    删除

      Redis数据库

3.Redis 配置

    在Ubuntu系统中默认配置文件地址:   /etc/redis/redis.conf

    port 6379             # 默认端口    

    logfile /var/log/redis.log     # 日志文件位置    

    dbfilename dump.rdb         # RDB持久化数据文件(文件内容定期保存到本地数据库)

    dir /var/lib/redis        #本地数据库存放目录    

    bind 127.0.0.1            # 指定IP进行监听  

    requirepass  yourpassword    #密码  设置密码后连接redis需要:redis-cli -a yourpassword

    Save 900 1            #持久化(过900s保存一下)

    Redis数据库

    使用vim打开配置文件

    Redis数据库

   会发现是个空的,因为没有权限,需要提权限才能查看其中的内容,:q!退出

    sudo vim redis.conf   输入密码就可以了

    Redis数据库