简介
Remote Dictionary Server (Redis)
Redis是一个开源的高性能键值对数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同的角色。
它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。
截止到2015年6月27日,发布的最新稳定版本是3.0.2。
3.0版本最大的提升就是redis集群,一个分布式的redis示例具有数据自动分片和高容错性,以及在高负载的情况下的速度提升。
安装、配置
安装
下载路径: http://redis.io/download
安装命令
$ wget http://download.redis.io/releases/redis-3.0.2.tar.gz
$ tar xzf redis-3.0.2.tar.gz
$ cd redis-3.0.2
$ make
启动
$ src/redis-server
客户端
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
配置
redis的配置示例文件在%REDIS_HOME%下的redis.conf
里面包含很多默认配置
使用配置可以这样:$ redis-server /etc/redis/6379.conf
daemonize 如果需要在后台运行,把该项改为yes
pidfile 配置多个pid的地址,默认在/var/run/redis.pid
bind 绑定ip,设置后只接受自该ip的请求
port 监听端口,默认为6379
timeout 设置客户端连接时的超时时间,单位为秒
loglevel 分为4级,debug、verbose、notice、warning
logfile 配置log文件地址
databases 设置数据库的个数,默认使用的数据库为0
save 设置redis进行数据库镜像的频率,保存快照的频率。
第一个参数表示多长时间,第二个表示执行多少次写操作。
在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression 在进行镜像备份时,是否进行压缩
Dbfilename 镜像备份文件的文件名
Dir 数据库镜像备份的文件放置路径
Slaveof 设置数据库为其他数据库的从数据库
Masterauth 主数据库连接需要的密码验证
Requirepass 设置登录时需要使用的密码
Maxclients 限制同时连接的客户数量
Maxmemory 设置redis能够使用的最大内存
Appendonly 开启append only模式
appendfsync 设置对appendonly.aof文件同步的频率
vm-enabled 是否虚拟内存的支持
vm-swap-file 设置虚拟内存的交换文件路径
vm-max-memory 设置redis使用的最大物理内存大小
vm-page-size 设置虚拟内存的页大小
vm-pages 设置交换文件的总page数量
vm-max-threads 设置VMIO同时使用的线程数量
glueoutputbuf 把小的输出缓存存放在一起
hash-max-zipmap-entries 设置hash的临界值
activerehashing 重新hash
详情可参考:http://t.cn/8kr3HUw
数据结构及其使用场景
1 string 字符类型
2 hash 散列类型
3 list 列表类型
4 set 集合类型
5 sorted set 有序集合
string 字符串类型
字符串类型是redis最基础的数据类型,是其他4中数据类型的基础。
命令 | 描述 | 示例 |
---|---|---|
SET key value | 赋值 | set foo 5 ==> OK |
GET key | 取值 | get foo ==> "5" |
INCR key | 递增.键不存在时创建并赋0,否则+1 | incr foo ==> 6 |
DECR key | 递减 | decr foo ==> 5 |
INCRBY key num | 与incr一样,不过可以指定增加的数值 | incrby foo 5 ==> 10 |
APPEND key value | 追加,返回追加后字符串长度 | append foo 24 ==> 4 |
STRLEN key | 长度 | strlen foo ==> 4 |
MSET key value[ key value...] | 同时设置多个键值 | mset key1 1 key2 2 ==> OK |
MGET key[ key...] | 同时获取多个键值 | mget key1 key2 ==>"1" "2" |
字符串就介绍到这里了,还有其他命令请自行看官方文档