Redis 知识
16092016-06-22 11:00:00返回列表
redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,redis支持各种不同方式的排序。Redis数据都是缓存在计算机内存中,并且会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,redis支持各种不同方式的排序。Redis数据都是缓存在计算机内存中,并且会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
redis官网地址:http://www.redis.io/
redis => no sql
(新浪、知乎、暴雪都 在用)
Remote Directory Server 远程服务器字典
key=>value 键值对
内存 1s => 100000 键值对
断电退出时数据 会丢失
所以有时有会写入磁盘或追加到文件中
下载redis 地址:http://redis.io/download
下载安装
1) wget http://download.redis.io/releases/redis-3.0.7.tar.gz (下载)
tar xzf redis-3.0.7.tar.gz (解压)
cd redis-3.0.7 (进入解压目录)
make (编译安装)
2)在bin 下可执行程序
redis-server:redis服务器
redis-cli:命令行客户端
redis-benchmark:redis的性能测试工具
redis-check-aof: AOF文件修复工具
redis-check-dump: ROB文件检测工具
redis.conf 是redis的配置文件
使用redis文件时要先配置redis.conf文件中 daemonize no 将no 改为 yes
以守护进程的方式来使用
3)启动和停止redis
redis-server 直接启动
redis-server redis.conf 用配置文件启动
shutdown 停止redis
结束redis进程
3.命令返回值
1)状态回复 (不区分大小写,建议大写SET)
SET test ’this is a test'
2)错误回复
错误回得以error开始
(error) ERR unknown command ’TESTERROR'
3)整数回复
DBSIZE
以integer数值
(integer) 2
4)字符串回复
GET test
’this is a test'
(nil)代码空的结果
5)多行字符串回复
KEYS * ,得到当前数据库中的存在的键名
1) ’test1’
2) ’test2'
...
4.Redis配置选项相关内容
1》动态设置/获取配置选项的值
CONFIG GET name
1)“port”
2) ”6379"
设置:
CONFIG SET name value
2》Redis配置文件redis.conf选项相关
port 6379默认端口
bind 127.0.0.1 默认绑定的主机地址
timeout 0 当客户端闲置多久之后关闭链接,0代表没有启动这个选项
log level notice 日志的记录级别
#debug 很详细的信息,适合开发和测试
#verbose 包含很多不太有用的信息
#notice 比较适合生产环境
#warning 警告信息
logfile stdout,日志的记录方式,默认为标准输出
databases 16,默认数据库的数量16个,默认的数据库编号从0开始
CONFIG SET loglevel warning
CONFIG GET loglevel
redis-server redis.conf —loglevel warning
--快照--
save <seconds> <changes> :多少秒有多少次改变将其同步到磁盘中数据文件里
save 300 10 —300秒内有10个更改
rdbcompression yes,存储本地数据库时是否启用压缩,默认yes
dbfilename dump.rdb,指定本地数据库文件名,默认为dump.rdb
dir ./,指定本地数据库的存放目录,默认是当前目录
5.Redis的数据类型
String字符串类型
一个键最多存储512MB
1》SET :设置key对应的值为value
语法: SET key value [EX seconds] [PX milliseconds][NX|XX]
EX seconds:设置键key的过期时间SET key value second == SETEX
PX milliseconds : 以毫秒的形式设置过期时间 SET key value PX milliseconds == PSETEX
NX: 只有键不存在的时候才可以设置成功SET key value NX ==SETNX
XX: 只有key已经存在的时候才可以设置
SET test16 'this is a test16' EX 100
SET test17 'this is a test17' PX 20000
SET test18 'this is a test18' NX
SET test18 'this is a test188' XX
SET test19 'this is a test19' EX 100 NX
注意:如果key存在,同名会产生覆盖
2》GET:根据key找到对应的值
语法:GET key
注意:如果key不存在,返回nil
如果key不是字符串,会报错
3》GETRANGE:返回字符串中一部分
语法:GETRANGE key start end
GETRANGE testStr2 0 4
GETRANGE testStr2 0 -3
GETRANGE testStr2 -4 -2
4》GETSET:设置指定key的值,并且返回旧的值
SET testStr3 'king'
GET testStr3
GETSET testStr3 'queen'
注意:
如果key不存在,返回nil
如果key不是字符串,会报错
5》MSET :一次设置多个键值对
语法:MSET key value [key value ...]
MSET testStr5 'king' testStr6 'maizi' testStr7 'queen'
6》MGET:一次得到多个键值
语法:MGET key key
MSET testStr5 testStr6 testStr7
7》STRLEN:获取key的字符串长度
语法:STRLEN key
注意:对于不存在key获取其长度返回的0
8》SETRANGE:相当于字符串替换的效果
语法:SETRANGE key offset value
注意:如果设置的key原来的字符串长度要比偏移量小,就会以零字节(\x00)来填充
SET testStr9 'hello king'
SETRANGE testStr9 6 'queen'
GET testStr9
STRLEN testStr9
对不存在的key使用SETRANGE