redis

 

一、Redis的安装

1) 使用 tar  –zxvf  redis— 进行解压

2) 进入redis的解压目录,无需进行配置直接make进入编译阶段

3) 在安装的时候指定安装目录:make PREFIX=/usr/local/redis  install

4) 将解压目录中的redis.conf配置文件复制到redis的安装目录中

5) 在redis文件中执行 . /bin/redis-server  ./redis.conf              //启动

注:在linux中执行可执行程序的时候要加 . /

6) 修改配置文件 daemonize  yes            // 后台启动

7) 重新启动(加入在bin目录下)        . /redis-server   ../redis.conf

8) 查看redis服务是否已经启动:           netstat –tunpl | grep 6379

9) 客户端连接redis服务(bin目录下)              . /redis-cli

10) 停止进程 pkill  redis-server

二、数据类型和操作

1) string 字符串类型

  set  key  value        // 设置键值

  get  key                          // 获取键值

  setnx  key  value            // 判断键值是否存在,存在则不设置

  setex  key  lifetime  value   // 设置具有生命周期的键值

  mset  key1 value1 key2 value2… // 设置多个键值

  mget  key1  key2  key3….     // 获取多个键值

  incr  key                                  // 当执行某个键的时候将会自增1

  incrby  key val              // 加法操作,给键加上val值

 

2)hashes 哈希类型

 是一个string类型的field 和value的映射表,hash特别适合存储对象

 

hset  key  field  value    // 为key设置field和value

hget  key  field                     // 获取哈希名为key字段名称为field的值

hmset  key  field1 value1 field2 value2 …. // 一次设置多个值

hmget  key  field1 field2 ….                // 一次获取多个字段的值

hlen     key                                         //获取哈希中字段的个数

hdel    key  field                               // 删除hash中的某个字段

hgetall  key                                        // 获取hash中所有的字段和值

 

3)lists  链表类型

 主要功能是通过push,pop获取一个范围的所有值,操作中的key可以理解为链表的名字

 redis的list类型其实就是一个子元素都是string类型的双向链表可以作为栈和队列

 

 lpush  链表名 value                // lpush 为栈  rpush 为队列   添加元素

rpop  链表名   value                  // 弹出元素左右均可

lrange  链表名  起始下标(0)  终止下标(-1)   lrange list 0 0    // 查看指定范围内的元素

lrem   链表名   下标  元素                         lrem list 0 xiaoxiao    // 移除指定的元素

ltrim        链表名     起始下标 终止下标            // 保留指定范围下标内的值

lindex  链表名   下标                                        // 返回指定下标的元素

 

4)sets 集合类型

       sets 是string类型的无需的集合,通过hash table来实现的,对集合我们得以取并集,交集、差集来实现对好友的推荐功能;redis 的集合具有唯一性和无需性

 

sadd  集合名称  value   // 向一个集合内添加一个元素

smembers 集合名称     // 查看集合内元素

srem 集合名称  元素名      // 删除指定集合里面指定的元素

sdiff 集合名1 集合名2      // 返回集合1余集合2的差集

sinter集合名1集合名2          // 返回集合1和集合2的交集’

sunion 集合1 集合2             // 返回集合1和集合2的交集(去重)

scard  集合名                        // 返回集合1中元素的个数

sismember 集合名1 元素名   // 判断某个元素是否存在于集合中

 

5)有序集合

 

6)其他命令

keys *        // 查看所有redis中所有元素

exists key       // 检测该键是否存在于数据库中

del   key      // 删除某个指定的键

exprie  key  // 对指定的键设置失效时间

ttl    key     // 查看该键的失效时间

type key     // 查看该键的类型

select 0      // 选择0-15个数据库

dbsize       // 返回当数据库中数据的个数

flushdb      // 清除当前数据库的值

flushall      // 清除所有数据库的值

三、redis 的安全性

1、设置密码

1)打开redis.conf文件,设置requirepass xxxx

2)重启redis服务: pkill redis-server

       bin文件: ./redis-server  ../redis.conf

2、登录

 1)登录服务器的时候 ./bin/redis-cli  -a 密码

 2)登录以后通过 auth 密码  来完成

 

 

四、PHP对redis的连接

1、配置php.ini

1)获取动态库: php_igbinary.dll 和 php_redis.dll 放入ext目录中

2)修改php.ini添加动态库 extension = php_igbinary.dll(前)extension=php_redis.dll(后)

3)重启Apache

五、持久化机制

redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步同硬盘中来保证持久化

快照机制

1)snapshotting:快照机制(默认)

       将内存中的数据以自定义配置方式写入到二进制文件中,默认的文件名为.rdb

 save 900 1   # 如果在900秒内有一个key被修改,将会执行快照机制

 dbfilename dump.rdb 文件保存着快照的数据

2)为弥补自动执行快照的缺陷,手动方式为:

 登录状态:bgsave (在重启之后将会看见)

 未登录状态:./redis-cli bgsave

 

aof机制

 

由于快照的方式是一定的间隔做一次的,所以如果redis出现意外的情况下,就会丢失最后一次的数据,aof机制是通过write函数将每个执行的命令追加到函数中,当redis重启时会通过重新执行文件中保存的命名来在内存中重建整个数据库的内容

1)aof机制的配置: redis.conf 文件修改

  appendonly yes         // 开启aof持久化机制

  appendfilename  appendonly.aof    // 保存命令的文件

  appendfsync  everysec            // 每秒执行一次

2)重写命令

当我们在执行 incr number 的时候在短时间内执行的次数非常多,将会产生很多的无效字段来占用内存,故我们通过

登录状态:bgwriteaof 来进行重写

未登录的状态:./bin/redis-cli  -a  密码 bgrewriteaof

 

当开启种机制的时候

posted @ 2015-10-26 09:27  罗雪纷纷  阅读(175)  评论(0编辑  收藏  举报