Redis入门
前言: 内容来源于书籍、网站、个人理解等。侵删。
一、Redis介绍
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
二、安装
- window环境
redis本只有linux版本,Microsoft 开发和维护了Win64 版本 。下载地址: https://github.com/MSOpenTech/redis/releases
下载后解压,打开redis-server.exe 既可。cmd中指令: redis-server.exe redis.windows.conf 可使用自定配置。
打开redis-li.exe 客户端,可以进行调试。set msg "hello"; get msg; 进行存取数据.
- linux环境
下载地址: https://redis.io/download
使用linux命令 下载、解压、编译
$ wget http://download.redis.io/releases/redis-4.0.10.tar.gz $ tar xzf redis-2.8.17.tar.gz $ cd redis-2.8.17 $ make
之后redis的src中就会有服务程序redis-server、测试的客户端程序redis-cli
启动redis-server、../redis.conf为可选参数、自定配置。同理启动redis-cli 后就可以进行测试。
$ cd src
$ ./redis-server ../redis.conf
- 可配置参数
参考 http://www.runoob.com/redis/redis-conf.html
三、指令介绍
前面介绍了redis支持的值类型: 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)、下面介绍多种值以及键的命令。
- 键 (KEY)
DEL key
删除一个键并返回删除数 不存在返回0DUMP key序列化给定 key ,并返回被序列化的值ESISTS key检查key的存在EXPIRE key second为key设置过期时间EXPIREAT key timestamp设置过期时间、接受unix时间戳(e.g. 1532864576)PEXPIRE key millseconds设置过期时间、时间以毫秒计PEXPIREAT key millseconds设置过期时间、接受unix时间戳、时间以毫秒计KEYS pattern查找符合给定模式的keyMOVE key db将当前数据库的key移动到给定数据库db中PERSIST key移除key的过期时间、将持久保持TTL key返回key的剩余生存时间(time to live)PTTL key返回key的剩余生存时间、以毫秒计RANDOMKEY随机返回当前数据库中存活的一个keyRENAME key newkey修改key的名称RENAMENX key newkey当且仅当 newkey不存在、修改key名称为newkeyTYPE key返回key存储值的类型
- 字符串 (String)
SET key value
|
设置指定 key 的值
|
GET key
|
获取指定 key 的值
|
GETRANGE key start end
|
返回 key 中字符串值的子字符
|
GETSET key value
|
将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
|
GETBIT key offset
|
对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
|
MGET key1 [key2..]
|
获取所有(一个或多个)给定 key 的值。
|
SETBIT key offset value
|
对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
|
SETEX key seconds value
|
将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。
|
SETNX key value
|
只有在 key 不存在时设置 key 的值。
|
SETRANGE key offset value
|
用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。
|
STRLEN key
|
返回 key 所储存的字符串值的长度。
|
MSET key value [key value ...]
|
同时设置一个或多个 key-value 对。
|
MSETNX key value [key value ...]
|
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
|
PSETEX key milliseconds value
|
这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。
|
INCR key
|
将 key 中储存的数字值增一。
|
INCRBY key increment
|
将 key 所储存的值加上给定的增量值(increment) 。
|
INCRBYFLOAT key increment
|
将 key 所储存的值加上给定的浮点增量值(increment) 。
|
DECR key
|
将 key 中储存的数字值减一。
|
DECRBY key decrement
|
key 所储存的值减去给定的减量值(decrement) 。
|
APPEND key value
|
如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。
|
- 哈希 (Hash)
HDEL key field1 [field2] |
删除一个或多个哈希表字段 |
HEXISTS key field |
查看哈希表 key 中,指定的字段是否存在。 |
HGET key field |
获取存储在哈希表中指定字段的值。 |
HGETALL key |
获取在哈希表中指定 key 的所有字段和值 |
HINCRBY key field increment |
为哈希表 key 中的指定字段的整数值加上增量 increment 。 |
HINCRBYFLOAT key field increment |
为哈希表 key 中的指定字段的浮点数值加上增量 increment 。 |
HKEYS key |
获取所有哈希表中的字段 |
HLEN key |
获取哈希表中字段的数量 |
HMGET key field1 [field2] |
获取所有给定字段的值 |
HMSET key field1 value1 [field2 value2 ] |
同时将多个 field-value (域-值)对设置到哈希表 key 中。 |
HSET key field value |
将哈希表 key 中的字段 field 的值设为 value 。 |
HSETNX key field value |
只有在字段 field 不存在时,设置哈希表字段的值。 |
HVALS key |
获取哈希表中所有值 |
HSCAN key cursor [MATCH pattern] [COUNT count] |
迭代哈希表中的键值对。 |
- 列表 (List)
BLPOP key1 [key2 ] timeout
移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
BRPOP key1 [key2 ] timeout
移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
BRPOPLPUSH source destination timeout
从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
LINDEX key index
通过索引获取列表中的元素
LINSERT key BEFORE|AFTER pivot value
在列表的元素前或者后插入元素
LLEN key
获取列表长度
LPOP key
移出并获取列表的第一个元素
LPUSH key value1 [value2]
将一个或多个值插入到列表头部
LPUSHX key value
将一个值插入到已存在的列表头部
LRANGE key start stop
获取列表指定范围内的元素
LREM key count value
移除列表元素
LSET key index value
通过索引设置列表元素的值
LTRIM key start stop
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
RPOP key
移除并获取列表最后一个元素
RPOPLPUSH source destination
移除列表的最后一个元素,并将该元素添加到另一个列表并返回
RPUSH key value1 [value2]
在列表中添加一个或多个值
RPUSHX key value
为已存在的列表添加值
- 集合 (Set)
SADD key member1 [member2] |
向集合添加一个或多个成员 |
SCARD key |
获取集合的成员数 |
SDIFF key1 [key2] |
返回给定所有集合的差集 |
SDIFFSTORE destination key1 [key2] |
返回给定所有集合的差集并存储在 destination 中 |
SINTER key1 [key2] |
返回给定所有集合的交集 |
SINTERSTORE destination key1 [key2] |
返回给定所有集合的交集并存储在 destination 中 |
SISMEMBER key member |
判断 member 元素是否是集合 key 的成员 |
SMEMBERS key |
返回集合中的所有成员 |
SMOVE source destination member |
将 member 元素从 source 集合移动到 destination 集合 |
SPOP key |
移除并返回集合中的一个随机元素 |
SRANDMEMBER key [count] |
返回集合中一个或多个随机数 |
SREM key member1 [member2] |
移除集合中一个或多个成员 |
SUNION key1 [key2] |
返回所有给定集合的并集 |
SUNIONSTORE destination key1 [key2] |
所有给定集合的并集存储在 destination 集合中 |
SSCAN key cursor [MATCH pattern] [COUNT count] |
迭代集合中的元素 |

浙公网安备 33010602011771号