一、Redis的简介:
NoSql 及No Only SQL,是高并发,超大数据存在,不同于关系型数据库。拥有:非关系型,分布式,开源的,可水平扩展。
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
二、Redis的适用场景:
1. 对数据高并发读写。
2. 对海量数据的高效率存储和访问。
3. 对海量的高可扩展和高可用性。
三、开发适用Redis的场合:
1. 取最新N个数据的操作。
2. 排行榜应用,获取Top N的操作
3. 需要精确设置过期时间的应用
4. 计数器应用
5. Unique操作,获取某段时间所有数据排重值
6. 实时系统,反垃圾系统
7. Pub/Sub构建实时消息系统
8. 构建队列系统
9. 缓存数据
四、Redis在Ubuntu中的部署
相关Redis的下载:http://redis.io/download
部署
下载编译:
$ wget http://download.redis.io/releases/redis-2.8.19.tar.gz
$ tar xzvf redis-2.8.19.tar.gz
$ cd redis-2.8.19
$ make
安装,进入redis-2.8.19的src安装:
$ cd src
$ sudo make install
在/usr/local下创建redis/bin(存放执行文件)目录和redis/etc(存放配置文件):
$ sudo mkdir -p /usr/local/redis/bin
$ sudo mkdir -p /usr/local/redis/etc
移动redis-2.8.19下的redis.conf 到/usr/local/redis/etc目录下:
$ sudo mv ./redis.conf /usr/local/redis/etc/
将src下的所有绿色的可执行文件命令移动到/usr/local/redis/bin/目录下:
$ sudo mv mkreleasehdr.sh redis-cli redis-benchmark redis-check-aof redis-check-dump redis-server redis-sentinel /usr/local/redis/bin/
启动redis
$ cd /usr/local/redis/bin
$ sudo ./redis-server /usr/local/redis/etc/redis.conf
关闭reids
$ pkill redis-server 或kill -pid(redis的进程id)
客户端的关闭
$ cd /usr/local/redis/bin
$ ./redis-cli shutdown
查看redis是否启动
1 $ ps -ef | grep redis
2 $ netstat -tunpl | grep 6379
3 用客户端连接
$ cd /usr/local/redis/bin/
$ ./redis-cli
开启效果如下:
五、redis的配置
daemonize 如果需要后台运行,设置yes
pidfile 配置多个pid的地址,默认在var/run/redis.pid
bind 绑定ip,设置后只接受来自来ip的请求
port 监听端口 默认6379
timeout 设置客户端连接的超时时间,单位为秒
loglevel 日志等级 有4级别 , debug verbose notice warning
logfile 配置log文件地址
databases 设置数据库的个数,默认使用的是数据库为0,一共16个从0-15
save 设置redis进行数据库镜像的频率
rdbcompression 在进行镜像备份时,是否进行压缩
Dbfilename 镜像备份文件放置路径
Slaveof 设置数据库为其他数据库的数据库
Masterauth 主数据库链接需要的验证密码
Requirepass 设置登录时需要的使用密码
Maxclients 设置同时连接的客户数量
Maxmemory 设置redis能够使用的最大内存
Appendonly 开启append only模式
六、多个redis搭建
如果一台电脑上需要搭建多个redis,那么只需拷贝redis.conf重命名,如redis-6378.conf,然后修改里面的端口信息:如port 6378
在进入到redis目录:
cd redis-2.8.22
./src/redis-server redis-6378.conf //启动对于的redis配置
./src/redis-cli -a rdadmin -p 6378 //进入客户端 -p为端口号 -a为redis-6378.的对于密码
七、常用命令
1模糊匹配查询
./redis-cli keys "user:token:*"
如果是查询全部
./redis-cli keys *
2批量模糊匹配删除
./redis-cli -a rdadmin -p 6378 keys "similar:card:*" | xargs ./redis-cli -a rdadmin -p 6378 del
其中-a后面是设置权限密码
-p对于的对应的端口
清空当前库
./redis-cli flushdb
清空所有库中内容
./redis-cli flushall