学习笔记

Study notes

Redis 知识

云逐梦12442016-06-22 11:00:00返回列表

redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,redis支持各种不同方式的排序。Redis数据都是缓存在计算机内存中,并且会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。

redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,redis支持各种不同方式的排序。Redis数据都是缓存在计算机内存中,并且会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。


     redis官网地址:http://www.redis.io/


redis  =>  no sql

(新浪、知乎、暴雪都 在用)

Remote Directory Server 远程服务器字典

key=>value  键值对

内存  1s => 100000 键值对

断电退出时数据 会丢失

所以有时有会写入磁盘或追加到文件中


下载redis 地址:http://redis.io/download


下载安装

1)        wget http://download.redis.io/releases/redis-3.0.7.tar.gz   (下载)

      tar xzf redis-3.0.7.tar.gz   (解压)

      cd redis-3.0.7    (进入解压目录)

      make    (编译安装)

2)在bin 下可执行程序

redis-server:redis服务器

redis-cli:命令行客户端

redis-benchmark:redis的性能测试工具

redis-check-aof: AOF文件修复工具

redis-check-dump: ROB文件检测工具


redis.conf 是redis的配置文件

使用redis文件时要先配置redis.conf文件中 daemonize no  将no 改为 yes

以守护进程的方式来使用


3)启动和停止redis

redis-server 直接启动

redis-server redis.conf 用配置文件启动

shutdown 停止redis

结束redis进程


3.命令返回值

1)状态回复 (不区分大小写,建议大写SET)

     SET test ’this is a test'

2)错误回复

     错误回得以error开始

     (error) ERR unknown command ’TESTERROR'

3)整数回复

     DBSIZE

     以integer数值

     (integer) 2

4)字符串回复

     GET test

     ’this is a test'


     (nil)代码空的结果

5)多行字符串回复

     KEYS *  ,得到当前数据库中的存在的键名

     1) ’test1’

          2)  ’test2'

     ...

4.Redis配置选项相关内容

     1》动态设置/获取配置选项的值

     CONFIG GET name

     1)“port”

     2) ”6379"

     设置:

     CONFIG SET name value

     2》Redis配置文件redis.conf选项相关

     port 6379默认端口

     bind 127.0.0.1 默认绑定的主机地址

     timeout 0  当客户端闲置多久之后关闭链接,0代表没有启动这个选项

     log level notice 日志的记录级别

     #debug 很详细的信息,适合开发和测试

     #verbose 包含很多不太有用的信息

     #notice 比较适合生产环境

     #warning 警告信息


     logfile stdout,日志的记录方式,默认为标准输出

     databases 16,默认数据库的数量16个,默认的数据库编号从0开始


     CONFIG SET loglevel warning

     CONFIG GET loglevel

     redis-server redis.conf —loglevel warning


     --快照--

     save <seconds> <changes> :多少秒有多少次改变将其同步到磁盘中数据文件里

     save 300 10 —300秒内有10个更改


     rdbcompression yes,存储本地数据库时是否启用压缩,默认yes

     dbfilename dump.rdb,指定本地数据库文件名,默认为dump.rdb

     dir ./,指定本地数据库的存放目录,默认是当前目录


5.Redis的数据类型

     String字符串类型

          一个键最多存储512MB

          1》SET :设置key对应的值为value

           语法: SET key value [EX seconds] [PX milliseconds][NX|XX]

               EX seconds:设置键key的过期时间SET key value second == SETEX

               PX milliseconds : 以毫秒的形式设置过期时间 SET key value PX milliseconds == PSETEX

               NX: 只有键不存在的时候才可以设置成功SET key value NX ==SETNX

               XX: 只有key已经存在的时候才可以设置

               SET test16 'this is a test16' EX 100

               SET test17 'this is a test17' PX 20000

               SET test18 'this is a test18' NX

               SET test18 'this is a test188' XX

               SET test19 'this is a test19' EX 100  NX

           注意:如果key存在,同名会产生覆盖

          2》GET:根据key找到对应的值

           语法:GET key

           注意:如果key不存在,返回nil

                如果key不是字符串,会报错

                      3》GETRANGE:返回字符串中一部分

                         语法:GETRANGE key start end

                         GETRANGE testStr2 0 4

                         GETRANGE testStr2 0 -3

                         GETRANGE testStr2 -4 -2

                    4》GETSET:设置指定key的值,并且返回旧的值

                         SET testStr3 'king'

                         GET testStr3

                         GETSET testStr3 'queen'

                         注意:

                如果key不存在,返回nil

                如果key不是字符串,会报错

         5》MSET :一次设置多个键值对

            语法:MSET key value [key value ...]

               MSET testStr5 'king' testStr6 'maizi' testStr7 'queen'

         6》MGET:一次得到多个键值

            语法:MGET key key

               MSET testStr5  testStr6 testStr7

         7》STRLEN:获取key的字符串长度

            语法:STRLEN key

            注意:对于不存在key获取其长度返回的0

         8》SETRANGE:相当于字符串替换的效果

            语法:SETRANGE key offset value

            注意:如果设置的key原来的字符串长度要比偏移量小,就会以零字节(\x00)来填充

            SET testStr9 'hello king'

            SETRANGE testStr9 6 'queen'

            GET testStr9

            STRLEN testStr9

            对不存在的key使用SETRANGE


返回
顶部