前言
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
下载地址:http://download.redis.io/releases/redis-4.0.2.tar.gz
使用
下载安装好后,打开它所在目录的redis.windows-service.conf文件,ctrl + f 找到 “requirepass foobared”在它下面一行输入 requirepass 你的密码(设置密码),window + r 键 输入“services.msc” 找到Redis将它重启
常用指令
- 密码验证:auth 123456
- 存key,value:set key1 value1
- 取key,value:get key1
- 存哈希:hset hash1 key1 value1
- 取哈希中key,value:hget hash1 key1
- 取哈希所有key,value:hgetall hash1
- 哈希批量存key,value:hmset hash2 k1 v1 k2 v2 k3 v3
Centos下安装
1.下载:输入命令wget http://download.redis.io/releases/redis-4.0.2.tar.gz
2.解压:输入命令tar xzf redis-4.0.2.tar.gz
3.输入命令cd redis-4.0.2 进入该文件夹,输入make报错,需安装C语言环境
4.安装C语言环境:输入命令yum install gcc,输入make还是报错
5.输入命令make MALLOC=libc
6.输入命令make install
7.输入命令cd /usr/local/bin/进入,再输入命令./redis-server启动redis
8.后台一直运行输入命令redis-serve &
9.查看redis进程,输入命令ps aux |grep "redis"
10.关闭进程 kill 进程号(例如:kill 2306)
node.js环境创建连接
var redis = require("redis")
var port = 6379
var host = "127.0.0.1"
var password = "123456"
var client = redis.createClient(port, host)
client.auth(password, function () {
console.log('OK')
})
//存
function setKey(key, value, callback) {
client.on("connect", function () {
client.set(key, value,callback)
})
}
//取
function getKey(key, callback) {
client.on("connect", function () {
client.get(key, callback)
})
}
//哈希存
function hset(hash,key,value,callback){
client.on("connect",function(){
client.hset(hash,key,value,callback)
})
}
//哈希取
function hget(hash,key,callback){
client.on("connect",function(){
client.hget(hash,key,callback)
})
}
//哈希取所有
function hgetall(hash,callback){
client.on("connect",function(){
client.hgetall(hash,callback)
})
}
//哈希批量存
function hmset(hash,paramArr,callback){
client.on("connect",function(){
client.hmset(hash,...paramArr,callback)
})
}
module.exports = {
setKey,
getKey,
hset,
hget,
hgetall,
hmset
}