redis配置与常用方法

本文大部分来自 huizhiwang 只为了记笔记用

基本配置:

1 启动db服务器 redis-server.exe redis.windows.conf --maxmemory 200M(后面的conf可以省略)

2 启动db服务 redis-cli.exe

3 关闭db服务器 redis-cli.exe -p 6379 shutdown

常用方法

1 string

1.1 添加键值-SET 语法 SET key value [EX seconds] [PX milliseconds] [NX|XX]

注意 如果 key 已经持有其他值,SET就覆写旧值,无视类型

1.2 添加值和生存时间-SETEX 语法 SETEX key seconds value

他的生存时间为60second

1.3 获取字符串-GET 语法 GET key

1.4 追加字符串-APPEND 语法 APPEND key value

1.5 添加多个键值-MSET 语法 MSET key value [key value ...]

1.6 获取多个键值-MGET 语法 MGET key [key ...]

1.7 覆写-SETRANGE 语法 SETRANGE key offset value

注意 SETRANGE命令会确保字符串足够长以便将 value 设置在指定的偏移量上,如果给定key 原来储存的字符串长度比偏移量小(比如字符串只有 5 个字符长,但你设置的 offset 是 10 ),那么原字符和偏移量之间的空白将用零字节(zerobytes, "\x00" )来填充。

1.8 获取键值长度-STRLEN 语法 STRLEN key

2 hash

相比string等数据类型,它提供很多方便的域操作,因此在表示对象时,它是非常适合的数据类型。

2.1 添加键域值-HSET 语法 HSET key field value

如果 key 不存在,一个新的哈希表被创建并进行HSET操作。

如果域 field 已经存在于哈希表中,旧值将被覆盖。

2.2 添加多个域值-HMSET 语法 HMSET key field value [field value ...]

HMSET一次可以设置多个 field-value (域-值)对设置到哈希表 key 中

2.3 获取值-HGET 语法 HGET key field

2.4 获取多个值-HMGET 语法 HMGET key field[field...]

2.5 获取全部值-HGETALL 语法 HGETALL key

返回结果是一行域名一行值...

2.6 验证域是否存在-HEXISTS 语法 HEXISTS key filed

2.7 获取所有域-HKEYS 语法 HKEYS key

2.8 获取域数量-HLEN 语法 HLEN key

经常用在在线聊天室,显示在线用户数

2.9 删除域-HDEL 语法 HDEL key field[field...]

3 list

Redis 列表是简单的字符串列表,按照插入顺序排序。

你可以添加一个元素导列表的头部(左边)或者尾部(右边) LPUSH 命令插入一个新的元素导头部, 而RPUSH插入一个新元素导尾部.

应用 在一个社交网络中建立一个时间线模型,使用 LPUSH 去添加新的元素到用户的时间线, 使用 LRANGE 去接收一些最近插入的元素。

 3.1 添加元素-LPUSH 语法 LPUSH key value[value...]

LPUSH的作用是将一个或多个值 value 插入到列表 key 的表头

3.2 设置指定位置元素-LSET 语法 LSET key index value

需要注意的是,列表 key 必须是已存在的,而且index不能超出列表长度范围。

3.3 取出元素-LPOP 语法 LPOP key

LPOP命令执行时会移除列表第一个元素

3.4 获取指定位置元素-LINDEX 语法 LINDEX key index

下标 (index)为正数时,0表示第一个元素,1表示第二个元素,以此类推。

下标 可以是负数,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

3.5 插入元素-LINSERT 语法 LINSERT key BEFORE|AFTER povit value

插入元素是一个必要功能,LINSERT可以将值 value 插入到列表 key 当中,位于值 pivot 之前或之后

3.6 移除元素-LREM 语法 LREM key count value

在redis中,移除列表元素使用LREM命令,根据参数 count 的值,移除列表中与参数 value 相等的元素

count 的值可以是以下几种:

  • count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。
  • count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。
  • count = 0 : 移除表中所有与 value 相等的值。

3.7 列表长度-LLEN 语法 LLEN key

3.8 剪切列表-LTRIM 语法 LTRIM key start stop

LTRIM可以对一个列表进行修剪,就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除

下标(index)参数start和stop都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。

你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

4 SET

Redis 集合(Set)是一个无序的字符串集合. 你可以快速的完成添加删除、以及测试元素是否存在

因此你可以在非常短的时间内进行合并(unions),求交集(intersections),求差集(differences of sets)

应用 使用集合追踪一件(独一无二的)事情,比如想要知道所有访问一个博客文章的独立IP

4.1 添加-SADD 语法 SADD key member[member...]

SADD命令可以将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略

4.2 随机取出-SPOP 语法 SPOP key

执行SPOP命令返回的元素将被移除该集合

4.3 获取全部元素-SMEMBERS 语法 SMEMBERS key

SMEMBERS命令只会返回集合中的全部成员,并不会移除它们

4.4 元素数量-SCARD 语法 SCARD key

4.5 差集-SDIFF 语法 SDIFF key1[key2...]

其实就是 {集合key1 - 集合key2}

4.6 交集-SINTER 语法 SINTER key1[key2...]

4.7 并集-SUNION 语法 SUNION key1[key2...]

4.8 包含判断-SISMEMBER 语法 SISMEMBER key member

4.9 移动元素-SMOVE 语法 SMOVE source destination member

将 member 元素从 source 集合移动到 destination 集合

如果 source 集合不存在或不包含指定的 member 元素,则SMOVE命令不执行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到destination 集合中去。

当 destination 集合已经包含 member 元素时,SMOVE命令只是简单地将 source 集合中的 member 元素删除。

4.10 移除元素-SREM 语法 SREM key member[member...]

移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。

5 ZSET

Redis 有序集合与普通集合非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分这个评分被用来按照从最低分到最高分的方式排序集合中的成员集合的成员是唯一的,但评分可以重复

使用有序集合你可以以非常快的速度 添加 、 删除 和 更新 元素。因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。

访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表

应用:在一个大型的在线游戏中展示一个排行榜,在那里一旦一个新的分数被提交,你可以使用ZADD命令去更新它.你也可用使用ZRANGE命令来得到顶级的用户,你还可以使用ZRANK命令根据用户名返回该用户在排行榜中的位次。同时使用ZRANK 和ZRANGE你可以显示和给定用户分数相同的所有用户。所有这些操作都非常的快速。

5.1 添加元素-ZADD 语法 ZADD key score member [[score member] [score member] ...]

如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个 member 元素,来保证该 member 在正确的位置上。

5.2 移除成员-ZREM 语法 ZREM key member[member...]

5.3 获取成员评分-ZSCRORE 语法 ZSCORE key member

5.4 获取指定区域成员-ZRANGE 语法 ZRANGE key start stop [WITHSCORES]

返回的成员的位置按 score 值递增(从小到大)来排序。

全部成员就是 0 到 -1

5.5 成员数量-ZCARD 语法 ZCARD key 

5.6 指定评分范围的成员数量-ZCOUNT 语法 ZCOUNT key min max

执行成功,将返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的数量。

5.7 排名-ZRANK 语法 ZRANK key member

排名以 0 为底,也就是说, score 值最小的成员排名为 0 。

使用 ZREVRANK 命令可以获得成员按 score 值递减(从大到小)排列的排名。

5.8 增量-ZINCRBY 语法 ZINCRBY key increment member 

ZINCRBY命令可以为给定的成员评分值加上增量(负数相当于减分)

当 key 不存在,或 member 不是 key 的成员时, ZINCRBY key increment member 等同于 ZADD key increment member 。

6 key

6.1 键管理-KEYS 语法 KEYS pattern

查找所有符合给定模式 pattern 的 key 。

KEYS * 匹配数据库中所有 key 。

KEYS h?llo 匹配 hello , hallo 和 hxllo 等。

KEYS h*llo 匹配 hllo 和 heeeeello 等。

KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。

特殊符号用 \ 隔开。

6.2 判断存在-EXISTS 语法 EXISTS key

6.3 移动-MOVE 语法 MOVE key db

MOVE命令的作用是将当前数据库的 key 移动到给定的数据库 db 当中

示例 - 将数据库0中的song,移动到数据库1。

# key 存在于当前数据库
 
redis> SELECT 0                             # redis默认使用数据库 0,为了清晰起见,这里再显式指定一次。
OK
 
redis> SET song "secret base - Zone"
OK
 
redis> MOVE song 1                          # 将 song 移动到数据库 1
(integer) 1
 
redis> EXISTS song                          # song 已经被移走
(integer) 0
 
redis> SELECT 1                             # 使用数据库 1
OK
 
redis:1> EXISTS song                        # 证实 song 被移到了数据库 1 (注意命令提示符变成了"redis:1",表明正在使用数据库 1)
(integer) 1
View Code

其中 select是选择数据库

6.4 重命名-RENAME 语法 RENAME key newkey

6.5 排序-SORT 语法SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination]

使用SORT命令,可以返回或保存给定列表集合有序集合 key 中经过排序的元素。

排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较。

6.6 序列化-DUMP 语法 DUMP key

执行DUMP命令序列化成功后,将返回被序列化的值

6.7 设置生存时间-EXPIRE 语法 EXPIRE key seconds

为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。

在 Redis 中,带有生存时间的 key 被称为『易失的』(volatile)。

生存时间可以通过使用 DEL 命令来删除整个 key 来移除,或者被 SET 和 GETSET 命令覆写(overwrite),这意味着,如果一个命令只是修改(alter)一个带生存时间的 key 的值而不是用一个新的 key 值来代替(replace)它的话,那么生存时间不会被改变。

6.8 剩余生存时间-TTL 语法 TTL key

当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以秒为单位,返回 key 的剩余生存时间。

6.9 删除key-DEL 语法 DEL key

posted @ 2017-02-07 17:07  fuzzier  阅读(455)  评论(0编辑  收藏  举报