redis安装

Redis

redis是什么?

         redis是开源BSD许可,高级的key-value储存系统

         可以用来储存字符串哈希结构,链表,集合,因此常用来提供数据结构服务。

 

        

redis和Memcached相比的独特之处

         1:redis可以用来做存储(storge),而Memcached是用来做缓存(cache)

         这个特点只要因为其有“持久化”的功能

         2:存储的数据有“结构”,对于Memcached来说,存储的数据,只有1种类型——“字符串”

         而redis则可以存储字符串,链表,哈希结构,集合,有序集合。

        

        

 

安装:去官网redis.io下载

先cd到放置压缩包的文件夹下

然后wget 下载

ls查看下载内容

解压源码并进入目录

tar zxvfredis-......(下载的压缩包)

cd redis-.....(解压后的文件夹)

直接make安装

 

make之后会提示你在执行make test,如果没安装test扩展(安不安都行,建议安装能查看安装时有没有出错)

安装test:yum installtcl   会提示你是否找到一个适合安装的

安装完成之后  再maketest  看看我们的系统满不满足安装需求,编译有没有出错(闲时间慢可以直接终止)

将redis安装到指定的目录

makePREFIX=/usr/local/redis install

cd 进入redis目录

cd/usr/lcoal/redis/

ls 查看里面文件

拷贝一份配置文件到redis文件夹(从源代码目录中redis下拷贝一份给定的配置文件)

cp /usr/local/src/redis-....../redis.conf./

启动连接

./bin/redis-server  ./redis.conf

(他的端口是6379)

此时退出会将其关闭(还没有做后台运行)

让redis以后台进程的方式运行

vim redis.conf

修改:

daemonize yes

wq 保存

再运行./bin/redis-server  ./redis.conf(此时没有任何效果以为已在后台运行了)

ps aux|grepredis                    (查看进程)

./bin/redis-cli                        (连接redis)

set site www.liouba.com        (添加一个缓存)

get site                                    (查看)

【问题】1.时间问题

由于下载时官方进行过congifure过生成的时间有时间戳信息

Make操作只能在configure之后,如果你的虚拟机时间不对,比如是2013年的(这个时候就会报错)

解决办法:date -s ‘yyy-mm-ddhh:mm:ss’ 重写时间

再clock-w  写入cmos

 

Redis 安装就此完成

=

=

=

《——————Redis对于key的通用操作命令———————》

./bin/redis-cli                                (连接redis)

set site www.liouba.com       (添加一个缓存)

get site                                    (查看)

在redis里允许迷糊查询key

有3个通配字符 * ? []

*:匹配任意多个字符 keys  * ,keys s*

?:匹配单个字符    keyssi?e

[]:匹配括号内的某一个字符 keys sit[ey]

randomkey返回随机的key名

type key           返回key值储存的类型(type stie)

有string,link,set,order,hash

exists key 判断key是否存在返回1/0 (exists site)

del key 删除一个或多个key(返回值:不存在的key忽略,删除真正存在的key的数量)

rename key newkey 给key改名字

renamenx key newkey 把key改名为newkey  返回:发上修改返回1,否则返回0

注:nx -> not exists,即newkey不存在时,做改写动作否则不执行动作

 

redis.conf中 databases 16 (redis默认有16个数据库【可以更改】)从0到15默认是0号数据库

move key db  【key:键名,db:数据库编号】

例如: move site 1 (将所在数据库中的site键放入1号数据库中)

redis多数用来做储存,也可以做缓存,可以设置有效期的用

expire key 整型值(以秒为单位)设置生命周期

pexpire key 毫秒数 设置生命周期

ttl key 查看key的生命周期(返回秒数) “ -1 ” 代表永久有效【对于不存在的key或已过期的key/不过期的key都返回-1,redis 2.8或以上返回的是-2】

pttl key 毫秒返回生命周期

persist key 把key设置成永久有效

 

《————————————以上是对key的通用操作————————————》

 

《———————————key的其他类型的操作———————————》

一、set即操作字符串类型

set key value [ex 秒数 / px 毫秒] [nx / xx]

ex px 同时应用会议后面的为准(毫秒)

nx :表示key不存在时执行操作

xx:表示key存在的时执行操作(也就是更改)

mset key1 value key2 value key3 value ...(设置多个key)

mget key1 key2 key3 (获取多个key的值)

setrange key offset value

作用:把字符串的offset偏移字节,改成value

注:如果偏移量大于字符串长度,多出的部分会自动补全\X00

append key value   把value值追加到key原值上

getrange key start stop  获取【start到stop】范围内的值(包括star和stop的值)

注:start>=length 返回空字符串

stop>=length 则截取值字符串结尾

如果start所处位置在stop右边,返回空字符串

stop可以是倒数的(倒数从-1开始),如:getrange key 0 -3 ,[从零到倒数第3个字节]

getset key newvalue   获取并返回旧值,设置新值

incr key 指定的key的值加1,并返回加1的值

decr key 指定的key的值减一,并返回减一的值

Incrby key number 指定的key的做增加number个值,并返回增加后的值

Incrbyfloat key number.number 增加浮点型数字 如incrbyfloat site 3.4

setbit key offset value 设置offset对应二进制位上的值,返回该位上的旧值

注:如果offset过大,则会在中间填充0。

还可以将改变大小写 setbin site 2 1(改成小写) setbin site 2 0 (改成大写)

Offset最大是2^32-1,可以退出最大的字符串为521M

 

《——————还有许多的操作就不一一举例—————》

redis事务及锁应用:

multi(开启redis事务[multi有多的意思,也就是接下来我要执行多个事务]

 

Mysql redis对比

 

Mysql

Redis

开启

start transaction

multi

语句

普通sql

普通命令

失败

rollback 回滚

discard 取消

成功

commit

exec

 

 

 

在mutil后面的语句中, 语句出错可能有2种情况

1: 语法就有问题,

这种,exec时,报错, 所有语句得不到执行

 

2: 语法本身没错,但适用对象有问题. 比如 zadd 操作list对象

Exec之后,会执行正确的语句,并跳过有不适当的语句.

 

(如果zadd操作list这种事怎么避免? 这一点,由程序员负责)

 

watch监控事务 例watch key (可以监视多个key【如果多个key中有任意一个key又变拿事务将取消】)

unwatch  取消监控

 

 

 

 

《——————PHPredis的扩展编译——————》

1、pecl.php.net 搜索redis

2、下载stable版(稳定版)扩展

3、解压

4、执行/php/path/bin/phpize(作用是检测PHP的内核版本,并为扩展生成相应的编译配置)

5、cd /usr/local/src/ (进入压缩包文件夹)

6、wget http://pecl.php.net/get/redis-2.2.7.tgz  下载压缩包

7、tar zxvf redis-2.2.7.tgz 解压

8、cd redis-2.2.7

9、/usr/local/webserver/php/bin/phpize  由于没源代码中没有php.config所有要根据php的版本生成config

10、./configure --with-php-config=/usr/local/webserver/php/bin/php-config

11、make && makeinstall

 

引入编译出的redis.so插件

1、编辑php.ini

2、添加php.ini   extension=redis.so

3、重启php

pkill -9 php-fpm

/usr/local/webserver/php/sbin/php-fpm

 

 

redis使用

测试客户端

进入www下创建一个redis.php(随便一个就行)

<?php

$redis = new Redis();

Var_dump($redis);

?>

在浏览器中浏览

《———以上已全部OK,下面试项目中的应用———》

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值