redis数据库随笔

一.什么是nosql?:

特点:不再使用严格的表结构.同时不用sql语句作为查询

redis支持数据持久化操作,将内存里面的数据保存到磁盘上

常见的支持的储存数据的类型(value):string  hash  set  orderset 

二.Windows下安装

1. 复制软件

复制到D下的redis文件夹

2.在cmd里面启动服务(需要超级管理员的身份启动)

D:\redis>redis-server.exe

3.另外在开一个终端cmd,使用客户端连接redis服务器

D:\redis>redis-eli.exe

三.redis的数据类型 

1.string 类型

set设置值

set username asion

set age 20

get获取值

get username

get age

incr自增

INCR age

incrby 指定自增的数字

INCRBY age 10

decr 自减

DECR age

decrby 指定自减

DECRBY age 10


id       name      pass        email        sex

1 asion   admin      [email protected] m

对应上表保存redis里

set user:id:1:name asion

set user:id:1:pass admin

set user:id:1:email [email protected]

set user:id:1:sex m


取出数据:

keys user:id:1*


get user:id:1:name

2.hash类型

hset设置值:

hset user:userinfo name asion

hget获取值:

hget user:userinfo name

hmset设置hash的多个值:

hmset user:userinfo name asion age 20 email 123@qq

hgetall 获取整个可以的hash值

hgetall user:userinfo

3.link链表类型:

头部压如数据:

lpush link1 A

lpush link1 B

尾部:

rpush link2 A

rpush link2 B

lrange获取链表里面所有的元素

lrange link1 0 -1

lpop删除链表里面头部的第一个元素,并返回该元素

lpop link1

rpop删除尾部

rpop link1

4.set类型

sadd向集合添加元素

sadd dd yuansu1

sadd dd yuansu2

SMEMBERS查看:

SMEMBERS dd

求取共同好友:

SINTER 元素1的好友 元素2的好友

全部好友:

SUNION 元素1的好友 元素2的好友

推荐好友:使用差值

sdiff 元素1的好友 元素2的好友

5.orderset类型:有序集合里面的元素是有序的,并且也是唯一的,也是确定的

1.zadd 添加有序集合

zadd php17 1 asion

zadd php17 2 bill

zadd php17 8 mark

2.zrange 获取有序集合里面的元素

zrange php17 0 -1

3.zrange  key 0 -1 WITHSCORES获取权值

zrange  php17 0 -1 WITHSCORES

四.使用php操作redis

1.复制合适的扩展文件到php的ext目录

php_igbinary.dll

php_redis.dll

2.修改配置文件php.ini

extension=php_igbinary.dll

extension=php_redis.dll

3.重启apache

五.redis的一些小命令

linux环境下:cd /usr/local/redis/bin/

连接服务器:./redis-cli

1.keys * 看所有的key

2.del 删除key(成功返回1 不成功返回0)

3.exists 检测key是否存在(存在返回1 不存在返回0)

4.type 查看value的类型

5.flushdb 清空当前数据库所有的key,只在测试的时候使用,线上千万不要使用。

6.当前数据库,注意redis默认是有16个数据库(下标从0开始),但是这个不怎么使用。使用select NUmber做切换

7.flushall 清除所有数据库的key,千万慎用

8.dbsize 查看当前数据的key的个数

七.linux环境下安装redis

1.ftp上传 

phpredis-2.2.4.tar.gz 

redis-3.0.7.tar.gz 

2.复制redis-3.0.7.tar.gz phpredis-2.2.4.tar.gz到/usr/local/src解压

然后进入cd redis-3.0.7 

编译:

make 

指定安装路径,进行安装

make PREFIX=/usr/local/redis install

建立redis的配置文件目录和配置文件的

copy mkdir /etc/redis  

cp redis.conf /etc/redis/

cd /etc/redis/bin

vim /etc/redis/redis.conf

daemonize yes

启动服务

./redis-server /etc/redis/redis.conf

ps axu | grep redis

使用客户端操作

./redis-cli

3.解压phpredis-2.2.4.tar.gz

进入解压后的目录,并使用/usr/local/php/bin/phpize收集信息

使用./configure --with-php-config=/usr/local/php/bin/php-config来收集操作系统信息

编译和安装

make && make install

vim /usr/local/php/lib/php.ini

extension = redis.so

八.redis 安全问题

linux环境下:

vim /etc/redis/redis.conf

添加密码:

requirepass admin

wq

pkill -9 redis

/usr/local/redis/bin/redis-server /etc/redis/redis.conf

auth admin 或者 /usr/local/redis/bin/redis-cli -a admin

九.redis的持久化

redis的数据本身是保存在内存里面的,但是redis提供了持久化的功能,可以把数据保存在磁盘上,下一次启动redis服务的时候,会自动的把磁盘上的数据载入到内存里面

linux环境下:

进入配置文件vim /etc/redis/redis.conf

save 900 1

save 300 10

save 60 10000

将内存里面的数据持久化到磁盘

dbfilename dump.rdb

save 900 1 代表的含义:如果在900s或者900s以上有1次对key的操作则把内存数据持久化到磁盘上

save 300 10 代表的含义:如果在300s或者300s以上有10次对key的操作则把内存数据持久化到磁盘上

save 60 10000 代表的含义:如果在60s或者60s以上有10000次对key的操作则把内存数据持久化到磁盘上


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章