标签:
Redis—— Remote Dictionary Server,它是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,我们可使用它构建高性能,可扩展的Web应用程序。
具有以下特点:
首先是在ubuntu下的安装:
下载:
root@localhost:~# wget http://download.redis.io/releases/redis-3.0.0.tar.gz
解压:
root@localhost:~# tar zxvf redis-3.0.tar.gz
编译安装:
root@localhost:~#cd redis-3.0.0 && make && make install
查看安装版本:
root@localhost:~# src/redis-server -v
基本组件:
组件 | 用途 |
---|---|
redis-server | Redis服务器的启动程序。 |
redis-cli | Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作。 |
redis-benchmark | Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能。 |
redis-stat | Redis状态检测工具,可以检测Redis当前状态参数及延迟状况。 |
启动redis服务:
root@localhost:~# src/redis-server
连接redis:
root@localhost:~# src/redis-cli 127.0.0.1:6379>
基本参数配置:
参数 | 作用 |
---|---|
daemonize | 是否以后台daemon方式运行redis服务。 |
port | redis服务端口,默认6379。 |
timeout | 请求超时时间。 |
requirepass | 连接数据库密码。 |
redis.config中daemonize参数默认为no,为了让redis服务在后台运行,我们需要将daemonize参数设置为yes。
redis> SET key value //如果key值相同则覆盖原值,并且清除原值的保存时间 redis> SETEX key seconds value //添加生存时间,以秒为单位 redis> GET key //如果key不存在,则返回nil(并非null),如果value非字符串,则报错,因为GET命令仅能获取string类型数据 redis> APPEND key appendValue // 对已存在的字符串进行追加,如果key不存在,则相当于set直接赋值 redis> MSET key value [key1 value1...] //同时set多个,存在则覆盖 redis> MGET key key1... //同时获取多个key值,如果某个key不存在,则当前key返回nil 例如: 127.0.0.1:6379> mget age gender sex 1) "12" 2) "man" 3) (nil) redis> SETRANGE key offset value //用value覆盖当前key,从偏移量offset开始,如果offset大于原value长度,则中间每个空白均采用用零字节"\x00"填充 redis> STRLEN key //返回当前key存储的string的长度,value非string时,报错
其它指令:
指令 | 用途 |
---|---|
GETSET | 设置键的字符串值,并返回旧值。 |
GETRANGE | 得到字符串的子字符串存放在一个键。 |
GETBIT | 对 key 所储存的字符串值,获取指定偏移量上的位(bit)。 |
SETBIT | 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。 |
SETNX | 将 key 的值设为 value ,当且仅当 key 不存在。 |
MSETNX | 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。 |
PSETEX | 和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。 |
INCR | 将 key 中储存的数字值增一。 |
INCRBY | 将 key 所储存的值加上指定增量。 |
INCRBYFLOAT | 为 key 中所储存的值加上指定浮点数增量。 |
DECR | 将 key 中储存的数字值减一。 |
DECRBY | 将 key 所储存的值加上指定增量。 |
HSET指令:
使用HSET命令来将哈希表 key 中的域 field 的值设为 value(即每个key存储的是很多键值对):
redis> HSET key field value # 设置一个新域
设置多个:
HMSET key field value [field value ...] //如果 key 不存在,将会创建一个空的哈希表并执行HMSET操作,如果添加的域已存在哈希表中,那么它将被覆盖。
获取指定key下的指定field值:
redis> HGET key field
获取多个:
redis> HMGET key field1 field2 field3... # 返回值的顺序和传入参数的顺序一样,如果field不存在,则返回nil
获取该key下全部field对应的field及value值(返回值格式为field1 value1然后是field2 value2...),所以返回值长度是field长度的2倍:
redis> HGETALL key
验证给定key下的field是否存在:
redis> HEXISTS key field //存在返回1,不存在返回0
返回当前key下所有field:
redis> HKEYS key // 当 key 不存在时,返回一个空表
返回当前key下所有field的长度和:
redis> HLEN key //当 key 不存在时,返回 0
删除给定key下的field:
redis> HDEL key field //如果是不存在的域,那么它将被忽略掉
标签:
原文地址:http://www.cnblogs.com/caiya928/p/4958178.html