一、Redis安装
1.下载安装:Releases · tporadowski/redis · GitHub
注意:解压路径中没有空格,没有中文
2.进入目录,在目录的地址栏输入cmd,敲回车,打开命令行窗口
3.在命令窗口输入:redis-server redis.windows.conf
显示这个页面就可以了
4.打开你的桌面Redis,创建连接
5.创建链接后可以直接点击打开控制台,右下角会出现一个窗口,用来输入命令
此外,还可以 在目录的地址栏输入cmd,敲回车,打开命令行窗口
在命令窗口输入 redis.cli 和 auth + (密码)
二、使用
1.select
Redis服务器默认配置了16个数据库,编号为0到15。每个数据库都是独立的,可以存储不同类型的数据。使用
SELECT
命令时,可以通过指定数据库的索引号来切换当前操作的数据库。
使用数据库9
2.set-添加一个键值对
注意:如果本身有key和value时,在添加同一个key时会把原有的value值进行覆盖
set key(name) value(lisi)
3.get-获取key值
4.append-将给定的value追加到原值的末尾
5.mset-同时设置多个key-value
6.setex
将值 value 关联到 key ,并将 key的生存时间设为 seconds(以秒为单位)
7.psetex
将值 value 关联到 key ,并将 key的生存时间设为milliseconds(以毫秒为单位)
8.ttl-以秒为单位,返回给定 key 的剩余生存时间
当 key 不存在时,返回 -2 。此时的key以被删除
当 key 存在但没有设置剩余生存时间时,返回 -1 。
否则,以秒为单位,返回 key 的剩余生存时间。
9.pttl-以毫秒为单位返回 key 的剩余生存时间
当 key 不存在时,返回 -2 。
当 key 存在但没有设置剩余生存时间时,返回 -1 。
否则,以毫秒为单位,返回 key 的剩余生存时间
10.exists-检查给定 key 是否存在
若 key 存在,返回 1 ,否则返回 0
11.dbsize-查看当前数据库中 key 的数量
12.flushdb-删除当前库中所有数据,不影响其他库
三、key相关操作命令
1.keys
keys * 查看所有
keys s* 查看以s开头的
2.move-将当前数据库的 key 移动到给定的另一个数据库当中
移动成功返回 1 ,失败则返回 0
3.rename-修改key
rename key newkey
当 key 和 newkey 相同,或者 key 不存在时,返回一个错误
当 newkey 已经存在时, RENAME 命令将覆盖旧值
修改前
修改后
4.type-返回 key 所储存的值的类型
返回值有以下六种:
none (key 不存在)
string (字符串)
list (列表)
set (集合)
zset (有序集)
hash (哈希表)
5.del-删除给定的一个或多个 key ,不存在的 key 会被忽略
DEL key [key ...]
6.persist-去除给定 key 的生存时间,将这个 key 从“易失的”转换成“持久的”
四、String相关操作命令
1.setnx
将 key 的值设为 value ,当且仅当 key 不存在。
若给定的 key 已经存在,则 SETNX 不做任何动作。
SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写
设置成功,返回 1
设置失败,返回 0
2.mget-返回所有(一个或多个)给定 key 的值
如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。因此,
该命令永不失败。
3.getrange
返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决
定(包括 start 和 end 在内)。
负数偏移量表示从字符串最后开始计数, -1 表示最后一个字符,-2 表示倒数第二个,
以此类推。
GETRANGE 通过保证子字符串的值域(range)不超过实际字符串的值域来处理超出范围
的值域请求
4.strlen-返回 key 所储存的字符串值的长度
返回 key 所储存的字符串值的长度
当 key 储存的不是字符串值时,返回一个错误当 key 不存在时,返回 0
5.setrange
格式: setrange key offset value
用 value 参数替换给定 key 所储存的字符串值 str,从偏移量 offset 开始
6.incrbyfloat-用于将指定键的值增加指定的浮点数
a 的 key值为12.2.这里显示的数据偏差是因为精度问题
7.incrby-增加,增加的数自定
decrby-减少,减少的数自定
8.incr-增加,每次加1
decr-减少,每次减1
五、Hash相关操作命令
1.hset-将哈希表 key 中的域 field 的值设为 value
格式:HSET key field value
如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作
如果域 field 已经存在于哈希表中,旧值将被覆盖如果 field 是哈希表中的一个新建域,并且值设置成功,返回 1
如果哈希表中域 field 已经存在且旧值已被新值覆盖,返回 0
2.hget-返回哈希表 key 中给定域 field 的值
当给定域不存在或是给定 key 不存在时,返回 nil
3.hgetall-返回哈希表 key 中,所有的域和值
在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是
哈希表大小的两倍若 key 不存在,返回空列表
4.hdel-删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略
5.hmset-同时将多个 field-value (域-值)对设置到哈希表 key 中
此命令会覆盖哈希表中已存在的域
如果 key 不存在,一个空哈希表被创建并执行 HMSET 操作如果命令执行成功,返回 OK
当 key 不是哈希表(hash)类型时,返回一个错误
6.hexists-查看哈希表 key 中,给定域 field 是否存在
如果哈希表含有给定域,返回 1
如果哈希表不含有给定域,或 key 不存在,返回 0
7.hkeys-返回哈希表 key 中的所有域
一个包含哈希表中所有域的表。
当 key 不存在时,返回一个空表。
8.hvals-返回哈希表 key 中所有域的值
一个包含哈希表中所有值的表
当 key 不存在时,返回一个空表
9.hlen-返回哈希表 key 中域的数量
当 key 不存在时,返回 0
六、List相关操作命令
1.lpush-将一个或多个值 value 插入到列表 key 的表头(最左)
如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头
2.rpush-将一个或多个值 value 插入到列表 key 的表尾(最右边)
如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾
3.lrange-返回所有数据
4.llen-返回列表 key 的长度
5.lpop-移除并返回列表 key 的头元素
6.rpop-移除并返回列表 key 的尾元素
7.ltrim-对一个列表进行修剪
让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
下标从0开始
七、Set相关操作命令
1.sadd-增加
将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。
假如 key 不存在,则创建一个只包含 member 元素作成员的集合。
当 key 不是集合类型时,返回一个错误。
2.smembers-返回集合 key 中的所有成员
3.sismember-判断 member 元素是否集合 key 的成员
格式:sismember key member
如果 member 元素是集合的成员,返回 1 。
如果 member 元素不是集合的成员,或 key 不存在,返回 0
4.scard-返回集合 key 的基数(集合中元素的数量)
5.smove
格式:smove source destination member
将 member 元素从 source 集合移动到 destination 集合
如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操
作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到 destination 集
合中去。
当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集
合中的 member 元素删除。
当 source 或 destination 不是集合类型时,返回一个错误
6.spop-移除并返回集合中的一个随机元素
格式:SPOP key [count]
移除并返回集合中的 count 个随机元素。count 必须为正数,且默认值为 1。如果 count 大于等于集合长度,那么移除并返回整个集合。
八、Sorted Set(有序集)
1.zadd
格式:zadd key score member [[score member] [score member] ...]
将一个或多个 member 元素及其 score 值加入到有序集 key 当中,如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个 member 元素,来保证该 member 在正确的位置上score 值可以是整数值或双精度浮点数,如果 key 不存在,则创建一个空的有序集并执行 ZADD 操作
当 key 存在但不是有序集类型时,返回一个错误
2.zrem-移除有序集 key 中的一个或多个成员,不存在的成员将被忽略
3.zcard-返回有序集 key 的基数
当 key 存在且是有序集类型时,返回有序集的基数
当 key 不存在时,返回 0
4.zcard-返回集合的长度
5.zscore-返回有序集 key 中,成员 member 的 score 值
6.zrange-返回有序集 key 中,指定区间内的成员-递增
其中成员的位置按 score 值递增(从小到大)来排序。
具有相同 score 值的成员按字典序(lexicographical order )来排列
7.zrevrange-返回有序集 key 中,指定区间内的成员-递减
其中成员的位置按 score 值递减(从大到小)来排列。
具有相同 score 值的成员按字典序的逆序(reverse lexicographical order)排列。
除了成员按 score 值递减的次序排列这一点外, ZREVRANGE 命令的其他方面和
ZRANGE 命令一样。
8.zcount-返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或max )的成员的数量
格式:zcount key min max
9.zscore-返回有序集 key 中,成员 member 的 score 值
10.zincrby-为有序集 key 的成员 member 的 score 值加上增量 increment,increment 值可以是整数值或双精度浮点数。
格式:zincrby key increment member
可以通过传递一个负数值 increment ,让 score 减去相应的值,比如 ZINCRBY key -5
member ,就是让 member 的 score 值减去 5 。
当 key 不存在,或 member 不是 key 的成员时, ZINCRBY key increment member 等
同于 ZADD key increment member 。
当 key 不是有序集类型时,返回一个错误。
score 值可以是整数值或双精度浮点数。
11.zrank-返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递增(从小到大)顺序排列
排名以 0 为底,也就是说, score 值最小的成员排名为 0 。
使用 ZREVRANK 命令可以获得成员按 score 值递减(从大到小)排列的排名。
12.zrevrank-返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递减(从大到小)排序
排名以 0 为底,也就是说, score 值最大的成员排名为 0 。
使用 ZRANK 命令可以获得成员按 score 值递增(从小到大)排列的排名。