Redis简介
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
换句话说,Redis就像是一个HashMap,不过不是在JVM中运行,而是以一个独立进程的形式运行。
一般说来,会被当作缓存使用。 因为它比数据库(mysql)快,所以常用的数据,可以考虑放在这里,这样就提高了性能。
redis官网:http://redis.io
下载地址:http://redis.io/download
github地址: https://github.com/mythz/redis-windows
官方命令地址:http://www.redis.cn/commands.html
需要注意的是redis是一个开源项目,需要自己下载后编译成exe文件,具体过程可自行百度
Redis启动
- 将编译好的redis放到自己的某个盘符下,个人将redis放在
D:\Program Files\redis-64.3.0.503
- 可以使用cd命令,切换到自己redis的存放位置,然后键入 redis-server.exe启动。为了方便,本人建议将redis-server.exe所在的目录添加到本机的path环境变量中。
Redis启动客户端
在启动redis服务的前提下,键入redis-cli.exe,如果出现ip+端口>
则表示redis客户端启动成功
Redis支持的几种数据类型
- String(字符串)
- List(列表)
- Hash(字典)
- Set(集合)
- Sorted Set(有序集合)
String常用命令
命令 |
含义 |
set key value |
设置key=value |
get key |
获取键为key的对应值 |
getrange key start end |
获取key对应值的start-end的值 |
getset key value |
设置键的字符串值并返回旧值 |
getbit key offset |
返回存储的键位置 |
mget key1 [key2..] |
得到所有给定键的值 |
setbit key offset value |
设置或清除该位在存储在键的字符串偏移值 |
setex key seconds value |
键到期时设置值 |
setnx key value |
设置键的值,只有当该键不存在 |
setrange key offset value |
覆盖字符串的一部分从指定键偏移 |
strlen key |
得到指定键存储的值得长度 |
mset key value[key value] |
设置多个键和值 |
msetnx key value[key value …] |
设置多个键和值,只有当键不存在时 |
psetex key milliseconds value |
设置键的毫秒值和到期时间 |
incr key |
增加键的整数值一次 |
incr key increment |
由给定的数值递增键的整数值 |
incrbyfloat key increment |
由给定的数值递增键的浮点值 |
decr |
递减键一次的整数值 |
decrby key decrement |
由给定的数目递减键的整数值 |
append key value |
给键追加value |
del key |
删除如果存在的键 |
dump key |
返回存储在指定键的值的序列化 |
exists key |
此命令检查该键是否存在 |
exists key seconds |
指定键的过期时间 |
expireat key timestamp |
指定键的过期时间,此处的timestamp是在unix的时间戳格式 |
pexpire key milliseconds |
设置键的到期时间,单位为毫秒 |
pexpireat key milliseconds-timestamp |
设置键的到期时间,时间戳为unix的时间戳 |
keys pattern |
查找与指定模式匹配的所有键 |
move key db |
移动键到另一个数据库 |
persitst key |
移除过期的键 |
pttl key |
以毫秒为单位获取键到期的剩余的时间 |
ttl key |
获取键到期的剩余时间 |
randomkey |
从redis中获取随机键 |
pename key newkey |
更改键的名称 |
penamenx key newkey |
重命名不存在的键 |
type key |
返回存储在键的数据类型的值 |
List类型常用命令
命令 |
作用 |
blpop key1 [key2] timeout |
取出并获取到列表中得第一个元素、或阻塞、直到有可用 |
brpop kye1 [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 |
修剪列表到指定的范围内 |
rpop key |
取出并获取列表中的最后一个元素 |
rpopplush source destination |
删除最后一个元素的列表,将其附加到另一个列表并返回它 |
rpush key value1 [value2] |
添加一个或多个值到列表 |
rpushx key value |
添加一个值列表,仅当列表中存在 |
Hash字典、哈希表常用命令
命令 |
作用 |
hdel key field [field…] |
删除对象的一个或几个属性域,不存在的属性将被忽略 |
hexists key field |
查看对象是否存在该属性域 |
hget key field |
获取对象中该field属性域的值 |
hgetall key |
获取对象的所用属性的域和值 |
hincrby key field value |
将该对象中指定的域的值增加给定的value,原子自增操作,只能是integer的属性值可以使用 |
hincrbyfloat key field increment |
将该对象中指定域的值增加给定的浮点数 |
hekys key |
获取对象的所有属性字段 |
hvals key |
获取对象所有属性值 |
klen key |
获取对象所有属性字段的总数 |
hmget key field[fiels …] |
获取对象的一个或多个指定字段的值 |
hset key field value |
设置对象指定字段的值 |
hmset key field value [field value…] |
同时设置对象中一个或者多个字段的值 |
hsetnx key field value |
只有对象不存在指定字段时才设置字段的值 |
hstrlen key field value |
返回对象指定field的value的字符串长度,如果该对象或者field不存在,返回0 |
hscan key cursor [match pattern] [count conunt] |
类似scan命令 |
set集合常用命令
命令 |
作用 |
sadd key member[member…] |
添加一个或者多个元素到集合里 |
scard key |
获取集合里的元素数量 |
sdiff key[key…] |
获取队列不存在的元素 |
sdiffstore destination key [key…] |
获得队列不存在的元素,并存储在一个关键的结果集 |
sinter key [key…] |
获取两个集合的交集 |
sinterstore destination key [key…] |
获得两个集合的交集,并存储在一个集合中 |
sismember key member |
确定一个给定的值是一个集合的成员 |
sismember key |
获取集合里面的所有key |
smove source destination member |
移动集合里面的一个key到另一个集合 |
spop key [count] |
获取并删除一个集合里面的元素 |
srandmember key [count] |
从集合里面随机获取一个元素 |
srem key member[member…] |
从集合删除一个或多个元素,不存在的元素会被忽略 |
sunion key [key…] |
添加多个set集合 |
sunionstore destination key [key…] |
合并set元素,并将结果存入新的set里面 |
sscan key cursor [match pattern][count count] |
迭代set里面的元素 |
Sorted set集合常用命令
命令 |
作用 |
zadd key score1 member1[score2 member2] |
添加一个或多个成员到有序集合,或者如果它已经存在更新 |
zcard key |
获取有序集合的成员的数量 |
zcount key min max |
计算一个有序集合成员域给定值范围内的分数 |
zincrby key increment member |
在有序集合增加成员的分数 |
zinterstore destination unmkeys key[key…] |
多重交叉排序集合,并存储生成一个新的键有序集合 |
zlexcount key min max |
计算一个给定的字典范围之间的有序集合成员的数量 |
zrange key start stop[withscores] |
由索引返回一个成员范围的有序集合(从低到高) |
zrangebylex key min max[limit offset count] |
返回一个成员范围的有序集合(由字典范围) |
zrangbyscore key min max[withscores][limit] |
返回有序集key中,所有的score值介于min与max之间(包含等于min或max)的成员,有序集成员按score值递增 |
zrank key member |
确定成员的索引中有序集合 |
zrem key member[rember…] |
从有序集中删除一个或者多个成员,不存在的成员忽略 |
zremrangebylex key min max |
删除所有成员在给定的字典范围之间的有序集合 |
zremrangebyrank key start stop |
在给定的索引之内删除所有成员的有序集合 |
zremrangebyscore key min max |
在给定的分数之内删除所有成员的有序集合 |
zrevrange key start stop[withsocres] |
返回一个成员范围得有序集合,通过索引,以分数排序,从高分到低分 |
zrevrangebyscore key max min[withscores] |
返回一个成员范围的有序集合,以score排序从高到低 |
zrevrange key member |
确定一个有序集合成员得索引,以分数排序,从高到低 |
zscore key member |
获取给定成员相关联得分数在一个有序集合 |
zunionstore destination numkeys key [key…] |
添加多个集排序,所得排序集合存储在一个新的键 |
zscan key cursor [match pattern][count count] |
增量迭代排序元素集和相关的分数 |