1、到github上下载需要的版本,我用的是官方的windows版本。
redis下载地址
2、然后启动Redis
Set REDIS_HOME=C:\Database\Redis\Redis-x64-2.8.2103 Set PATH=%REDIS_HOME%;%PATH% redis-server.exe D:\Database\Redis2.8\db\redis.windows.conf
配置文件redis.windows.conf中,我只修改了这两项:
logfile "D:/Database/Redis2.8/db/logs/redis_log.txt" dir "D:/Database/Redis2.8/db/data/"
如果要停止redis
#停止Redis redis-cli -h localhost -p 6379 shutdown
如果要查看redis信息
#查看信息 redis-cli -h localhost -p 6379 info
3、启动redis-cli.exe,连接到redis
#连接Redis redis-cli -h localhost -p 6379
4、String类型数据操作
localhost:6379> dbsize (integer) 0 localhost:6379> set key01 a OK localhost:6379> set key02 b OK localhost:6379> set key03 c OK localhost:6379> set key04 d OK localhost:6379> set key05 e OK localhost:6379> set key06 f OK localhost:6379> dbsize (integer) 6 localhost:6379> set name hansen OK localhost:6379> keys key* 1) "key03" 2) "key04" 3) "key01" 4) "key05" 5) "key02" 6) "key06" localhost:6379> exists key01 (integer) 1 localhost:6379> exists key07 (integer) 0 localhost:6379> get key06 "f" localhost:6379> get name "hansen" localhost:6379> rename name myname OK localhost:6379> get myname "hansen" localhost:6379> get name (nil) localhost:6379> dbsize (integer) 7 localhost:6379> move key06 1 (integer) 1 localhost:6379> dbsize (integer) 6 localhost:6379> exists key06 (integer) 0 localhost:6379> select 1 OK localhost:6379[1]> keys * 1) "key06" localhost:6379[1]> select 0 OK localhost:6379> exists key05 (integer) 1 localhost:6379> del key05 (integer) 1 localhost:6379> exists key05 (integer) 0
5、Map类型数据操作
localhost:6379> hset hset01 username "hansen" (integer) 1 localhost:6379> hset hset02 username "neohope" (integer) 1 localhost:6379> dbsize (integer) 2 localhost:6379> hset hset01 sex "male" (integer) 0 localhost:6379> hset hset02 sex "male" (integer) 1 localhost:6379> dbsize localhost:6379> type hset01 hash (integer) 2 localhost:6379> hlen hset01 (integer) 2 localhost:6379> hkeys hset01 1) "username" 2) "sex" localhost:6379> hget hset01 username "hansen"
6、List类型数据操作
localhost:6379> lpush listkey01 a (integer) 1 localhost:6379> lpush listkey01 b (integer) 2 localhost:6379> lpush listkey01 c (integer) 3 localhost:6379> lpush listkey01 d (integer) 4 localhost:6379> lpush listkey01 e (integer) 5 localhost:6379> lrange listkey01 0 -1 1) "e" 2) "d" 3) "c" 4) "b" 5) "a" localhost:6379> lindex listkey01 3 "b" localhost:6379> lrem listkey01 0 c (integer) 1 localhost:6379> lrange listkey01 0 -1 1) "e" 2) "d" 3) "b" 4) "a" localhost:6379> lpop listkey01 "e" localhost:6379> lpop listkey01 "d" localhost:6379> lrange listkey01 0 -1 1) "b" 2) "a" localhost:6379> lpush listkey02 1 (integer) 1 localhost:6379> lpush listkey02 2 (integer) 2 localhost:6379> lpush listkey02 3 (integer) 3 localhost:6379> lpush listkey02 4 (integer) 4 localhost:6379> lpush listkey02 5 (integer) 5 localhost:6379> lrange listkey02 0 -1 1) "5" 2) "4" 3) "3" 4) "2" 5) "1" localhost:6379> sort listkey02 1) "1" 2) "2" 3) "3" 4) "4" 5) "5" localhost:6379> lrange listkey02 0 -1 1) "5" 2) "4" 3) "3" 4) "2" 5) "1" localhost:6379>
7、Set类型数据操作
localhost:6379> sadd keyset01 1 2 3 (integer) 3 localhost:6379> sadd keyset02 4 5 6 (integer) 3 localhost:6379> dbsize (integer) 2 localhost:6379> type keyset01 set localhost:6379> smembers keyset01 1) "1" 2) "2" 3) "3"
8、Redis常用命令(在命令行使用时,请把函数的括号及逗号都替换为空格)
连接操作相关的命令 | |
quit | 关闭连接(connection) |
auth | 简单密码认证 |
对value操作的命令 | |
exists(key) | 确认一个key是否存在 |
del(key) | 删除一个key |
type(key) | 返回值的类型 |
keys(pattern) | 返回满足给定pattern的所有key |
randomkey | 随机返回key空间的一个key |
rename(oldname, newname) | 将key由oldname重命名为newname,若newname存在则删除newname表示的key |
dbsize | 返回当前数据库中key的数目 |
expire | 设定一个key的活动时间(s) |
ttl | 获得一个key的活动时间 |
select(index) | 按索引查询 |
move(key, dbindex) | 将当前数据库中的key转移到有dbindex索引的数据库 |
flushdb | 删除当前选择数据库中的所有key |
flushall | 删除所有数据库中的所有key |
对String操作的命令 | |
set(key, value) | 给数据库中名称为key的string赋予值value |
get(key) | 返回数据库中名称为key的string的value |
getset(key, value) | 给名称为key的string赋予上一次的value |
mget(key1, key2,…, key N) | 返回库中多个string(它们的名称为key1,key2…)的value |
setnx(key, value) | 如果不存在名称为key的string,则向库中添加string,名称为key,值为value |
setex(key, time, value) | 向库中添加string(名称为key,值为value)同时,设定过期时间time |
mset(key1, value1, key2, value2,…key N, value N) | 同时给多个string赋值,名称为key i的string赋值value i |
msetnx(key1, value1, key2, value2,…key N, value N) | 如果所有名称为key i的string都不存在,则向库中添加string,名称key i赋值为value i |
incr(key) | 名称为key的string增1操作 |
incrby(key, integer) | 名称为key的string增加integer |
decr(key) | 名称为key的string减1操作 |
decrby(key, integer) | 名称为key的string减少integer |
append(key, value) | 名称为key的string的值附加value |
substr(key, start, end) | 返回名称为key的string的value的子串 |
对List操作的命令 | |
rpush(key, value) | 在名称为key的list尾添加一个值为value的元素 |
lpush(key, value) | 在名称为key的list头添加一个值为value的 元素 |
llen(key) | 返回名称为key的list的长度 |
lrange(key, start, end) | 返回名称为key的list中start至end之间的元素(下标从0开始,下同) |
ltrim(key, start, end) | 截取名称为key的list,保留start至end之间的元素 |
lindex(key, index) | 返回名称为key的list中index位置的元素 |
lset(key, index, value) | 给名称为key的list中index位置的元素赋值为value |
lrem(key, count, value) | 删除count个名称为key的list中值为value的元素。count为0,删除所有值为value的元素,count>0从头至尾删除count个值为value的元素,count<0从尾到头删除|count|个值为value的元素。 |
lpop(key) | 返回并删除名称为key的list中的首元素 rpop(key),返回并删除名称为key的list中的尾元素 |
blpop(key1, key2,… key N, timeout) | lpop命令的block版本。即当timeout为0时,若遇到名称为key i的list不存在或该list为空,则命令结束。如果timeout>0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对keyi+1开始的list执行pop操作。 |
brpop(key1, key2,… key N, timeout) | rpop的block版本。参考上一命令。 |
rpoplpush(srckey, dstkey) | 返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部 |
对Set操作的命令 | |
sadd(key, member) | 向名称为key的set中添加元素member |
srem(key, member) | 删除名称为key的set中的元素member |
spop(key) | 随机返回并删除名称为key的set中一个元素 |
smove(srckey, dstkey, member) | 将member元素从名称为srckey的集合移到名称为dstkey的集合 |
scard(key) | 返回名称为key的set的基数 |
sismember(key, member) | 测试member是否是名称为key的set的元素 |
sinter(key1, key2,…key N) | 求交集 |
sinterstore(dstkey, key1, key2,…key N) | 求交集并将交集保存到dstkey的集合 |
sunion(key1, key2,…key N) | 求并集 |
sunionstore(dstkey, key1, key2,…key N) | 求并集并将并集保存到dstkey的集合 |
sdiff(key1, key2,…key N) | 求差集 |
sdiffstore(dstkey, key1, key2,…key N) | 求差集并将差集保存到dstkey的集合 |
smembers(key) | 返回名称为key的set的所有元素 |
srandmember(key) | 随机返回名称为key的set的一个元素 |
对zset(sorted set)操作的命令 | |
zadd(key, score, member) | 向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。 |
zrem(key, member) | 删除名称为key的zset中的元素member |
zincrby(key, increment, member) | 如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment |
zrank(key, member) | 返回名称为key的zset(元素已按score从小到大排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil” |
zrevrank(key, member) | 返回名称为key的zset(元素已按score从大到小排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil” |
zrange(key, start, end) | 返回名称为key的zset(元素已按score从小到大排序)中的index从start到end的所有元素 |
zrevrange(key, start, end) | 返回名称为key的zset(元素已按score从大到小排序)中的index从start到end的所有元素 |
zrangebyscore(key, min, max) | 返回名称为key的zset中score >= min且score <= max的所有元素 |
zcard(key):返回名称为key的zset的基数 zscore(key, element) | 返回名称为key的zset中元素element的 |
score zremrangebyrank(key, min, max) | 删除名称为key的zset中rank >= min且rank <= max的所有元素 |
zremrangebyscore(key, min, max) | 删除名称为key的zset中score >= min且score <= max的所有元素 |
zunionstore / zinterstore(dstkeyN, key1,…,keyN, WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX) | 对N个zset求并集和交集,并将最后的集合保存在dstkeyN中。对于集合中每一个元素的score,在进行AGGREGATE运算前,都要乘以对于的WEIGHT参数。如果没有提供WEIGHT,默认为1。默认的AGGREGATE是SUM,即结果集合中元素的score是所有集合对应元素进行SUM运算的值,而MIN和MAX是指,结果集合中元素的score是所有集合对应元素中最小值和最大值。 |
对Hash操作的命令 | |
hset(key, field, value) | 向名称为key的hash中添加元素field<—>value |
hget(key, field) | 返回名称为key的hash中field对应的value |
hmget(key, field1, …,field N) | 返回名称为key的hash中field i对应的value |
hmset(key, field1, value1,…,field N, value N) | 向名称为key的hash中添加元素field i<—>value i |
hincrby(key, field, integer) | 将名称为key的hash中field的value增加integer |
hexists(key, field) | 名称为key的hash中是否存在键为field的域 |
hdel(key, field) | 删除名称为key的hash中键为field的域 |
hlen(key) | 返回名称为key的hash中元素个数 |
hkeys(key) | 返回名称为key的hash中所有键 |
hvals(key) | 返回名称为key的hash中所有键对应的value |
hgetall(key) | 返回名称为key的hash中所有的键(field)及其对应的value |
持久化 | |
save | 将数据同步保存到磁盘 |
bgsave | 将数据异步保存到磁盘 |
lastsave | 返回上次成功将数据保存到磁盘的Unix时戳 |
shundown | 将数据同步保存到磁盘,然后关闭服务 |
远程服务控制 | |
info | 提供服务器的信息和统计 |
monitor | 实时转储收到的请求 |
slaveof | 改变复制策略设置 |
config | 在运行时配置Redis服务器 |