启动redis服务
先用管理员模式打开cmd,到redis的根目录,再输入下面的命令
windows 注册服务 redis-server --service-install redis.windows.conf windows 启动服务 redis-server --service-startwindows 停止服务 redis-server --service-stop
也可使用 下面命令启动
redis-server.exe redis.windows.conf
输入之后,会显示如下界面:
查看 redis 是否启动
$ redis-cli
以上命令将打开以下终端:
redis 127.0.0.1:6379>
127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。
redis 127.0.0.1:6379> pingPONG
说明我们已经成功安装启动了redis
连接服务
redis-cli.exe -h 127.0.0.1 -p 6379
查询字符串
KEYS pattern
查找所有匹配给定的模式的键,keys * 查看所有缓存的键
127.0.0.1:6379> GET db(nil) #不存在127.0.0.1:6379> SET db redisOK127.0.0.1:6379> GET db"redis"#查询成功
127.0.0.1:6379> keys *1) "key4"2) "key3"3) "sessionid"4) "key2"
127.0.0.1:6379> keys *1) "key8"2) "key5"3) "key4"4) "db"5) "sessionid"127.0.0.1:6379> mget key8 key5 key4 db1) "8"2) "87"3) "452"4) "3"
获取指定key值的长度
STRLEN key
127.0.0.1:6379> get db"123"127.0.0.1:6379> strlen db(integer) 3
127.0.0.1:6379> set db abcOK
设置一个key的值,只有当key不存在时
SETNX key value
127.0.0.1:6379> keys *1) "key8"2) "key5"3) "key4"4) "key9"5) "db"6) "sessionid"127.0.0.1:6379> setnx key8 88(integer) 0127.0.0.1:6379> setnx key10 10(integer) 1127.0.0.1:6379> keys *1) "key8"2) "key5"3) "key10"4) "key4"5) "key9"6) "db"7) "sessionid"127.0.0.1:6379> get key10"10"
设置key-value,并设置过期时间
SETEX key seconds value
127.0.0.1:6379> keys *1) "key8"2) "key5"3) "key10"4) "key4"5) "key9"6) "db"7) "sessionid"127.0.0.1:6379> setex key10 10 20OK127.0.0.1:6379> ttl key10(integer) -2
设置多个key 的值
MSET key1 value1 key2 value2 key3 value3 key4 value4
如果key不存在 则设置一个新的key并赋值
127.0.0.1:6379> keys *1) "key8"2) "key5"3) "key4"4) "db"5) "sessionid"127.0.0.1:6379> mget key8 key5 key4 db1) "8"2) "87"3) "452"4) "3"127.0.0.1:6379> mset key8 1 key5 5 key4 4 db 123OK127.0.0.1:6379> mget key8 key5 key4 db1) "1"2) "5"3) "4"4) "123"
设置多个key value,仅当key不存在时
MSETNX key1 value1 key2 value2 key3 value3
MSETNX 只要有一个存在的key 则设置全部不成功
127.0.0.1:6379> keys *1) "key8"2) "key5"3) "key4"4) "key9"5) "db"6) "sessionid"127.0.0.1:6379> msetnx key8 235 key10 58(integer) 0127.0.0.1:6379> msetnx key10 69 key11 11(integer) 1
追加一个值到key上,返回追加后的value的大小
APPEND key value
127.0.0.1:6379> get key4"4"127.0.0.1:6379> append key4 52(integer) 3127.0.0.1:6379> get key4"452"
如果key 不存在 会新建一个key
127.0.0.1:6379> keys *1) "key4"2) "db"3) "sessionid"127.0.0.1:6379> append key5 57(integer) 2127.0.0.1:6379> keys *1) "key5"2) "key4"3) "db"4) "sessionid"127.0.0.1:6379> get key5"57"
重新设置key的value,并获取设置前的值
GETSET key value
如果key不存在,则设置一个新的key,返回 nill
127.0.0.1:6379> get key5"57"127.0.0.1:6379> getset key5 87"57"127.0.0.1:6379> get key5"87"
key不存在
127.0.0.1:6379> keys *1) "key5"2) "key4"3) "db"4) "sessionid"127.0.0.1:6379> getset key8 8(nil)127.0.0.1:6379> keys *1) "key8"2) "key5"3) "key4"4) "db"5) "sessionid"127.0.0.1:6379> get key8"8"
查询键值:
127.0.0.1:6379> GET db"redis"#查询成功
查询列表中的元素
lrange key 0 -1
127.0.0.1:6379> lrange list_name 0 -11) "a"2) "b"3) "c"4) "d"5) "e"#0 -1代表区间为第一个到最一个#可见,在列表中有5个元素
删除指定的键值(一个或多个)
DEL key1 key2
127.0.0.1:6379> del db userName(integer) 2
导出key的值
dump key
如果 key 不存在,那么返回 nil。否则,返回序列化之后的值。
127.0.0.1:6379> dump token"\x00\xc1\x95&\a\x002h\xcc\xbaxu=\xac"
查询一个key是否存在
EXISTS key
如果 key 不存在,那么返回 0。否则,返回1
127.0.0.1:6379> exists redis(integer) 0127.0.0.1:6379> exists db(integer) 1
设置key的有效时间(秒)
EXPIRE key time
127.0.0.1:6379> expire db 200(integer) 1
获取key的有效时间(秒) 如果key不存在,返回 -2
ttl db
127.0.0.1:6379> expire db 20(integer) 1127.0.0.1:6379> ttl db(integer) -2127.0.0.1:6379> expire db 20000(integer) 1127.0.0.1:6379> ttl db(integer) 19992
设置key的有效时间(毫秒)
PEXPIRE key time
127.0.0.1:6379> pexpire db 2000(integer) 1
获取key的有效毫秒数(毫秒)
PTTL key
127.0.0.1:6379> pexpire db 2000(integer) 1127.0.0.1:6379> pttl db(integer) -2127.0.0.1:6379> pexpire db 200000(integer) 1127.0.0.1:6379> pttl db(integer) 194559
将一个key重命名
RENAME key newkey
如果该newkey已经存在了,那就用将被改名的key的value覆盖至与已存在老的newkey的值
127.0.0.1:6379> set key1 1OK127.0.0.1:6379> set key2 2OK127.0.0.1:6379> set key3 3OK127.0.0.1:6379> set key4 4127.0.0.1:6379> keys *1) "key1"2) "key4"3) "key3"4) "sessionid"5) "key2"127.0.0.1:6379> rename key1 key2OK127.0.0.1:6379> keys *1) "key4"2) "key3"3) "sessionid"4) "key2"127.0.0.1:6379> get key2"1"127.0.0.1:6379> rename key3 dbOK127.0.0.1:6379> keys *1) "key4"2) "db"3) "sessionid"4) "key2"127.0.0.1:6379> get db"3"
重命名一个key
RENAMENX key newkey新的key必须是不存在的key
修改成功时,返回 1 。
如果 newkey 已经存在,返回 0 。127.0.0.1:6379> keys *1) "key4"2) "db"3) "sessionid"4) "key2"127.0.0.1:6379> renamenx key2 db(integer) 0127.0.0.1:6379> renamenx key2 key8(integer) 1127.0.0.1:6379> keys *1) "key8"2) "key4"3) "db"4) "sessionid"127.0.0.1:6379> get key8"1"
返回一个随机的key
RANDOMKEY
127.0.0.1:6379> randomkey"key8"
获取key 的存储类型
TYPE key
127.0.0.1:6379> type dbstring
把key移动到另外一个数据库里
move key DBID
SELECT dbid (选择不同的DB)
redis的DB一共有16个,从 0-15,默认是D0个,我们可以通过命令 SELECT dbid 选择不同的DB,比如select 1;select 15等
127.0.0.1:6379> keys *1) "key8"2) "key4"3) "db"4) "sessionid"127.0.0.1:6379> move key8 1(integer) 1127.0.0.1:6379> keys *1) "key4"2) "db"3) "sessionid"127.0.0.1:6379> select 1OK127.0.0.1:6379[1]> keys *1) "key8"127.0.0.1:6379[1]>
清除当前DB 数据(慎用)
FLUSHDB 清除当前DB里的所有数据
FLUSHALL 清除所有的DB里的所有数据
127.0.0.1:6379> select 1OK127.0.0.1:6379[1]> keys *1) "key8"127.0.0.1:6379[1]> flushdbOK127.0.0.1:6379[1]> keys *(empty list or set)
key 值 加1操作
INCR key
key值必须为64位有符号整型数据
如果key的值不是整数,则报错(error) 如果指定的key不存在,则在执行incr操作之前,会将他的值设为0
127.0.0.1:6379> get key8"1"127.0.0.1:6379> incr key8(integer) 2127.0.0.1:6379> get key8"2"127.0.0.1:6379> get key5"abc"127.0.0.1:6379> incr key5(error) ERR value is not an integer or out of range
key值增加一个整数
INCRBY key increment
key值必须为64位有符号整型数据
如果key的值不是整数,则报错(error) 如果指定的key不存在,则在执行incr操作之前,会将他的值设为0
127.0.0.1:6379> get key8"2"127.0.0.1:6379> incrby key8 20(integer) 22127.0.0.1:6379> get key8"22"127.0.0.1:6379> get key5"abc"127.0.0.1:6379> incrby key5 20(error) ERR value is not an integer or out of range
key值减1
DECR key
key值必须为64位有符号整型数据
如果key的值不是整数,则报错(error) 如果指定的key不存在,则在执行incr操作之前,会将他的值设为0
127.0.0.1:6379> get key8"22"127.0.0.1:6379> decr key8(integer) 21127.0.0.1:6379> get key8"21"
key值减去一个整数
DECRBY key increment
key值必须为64位有符号整型数据
如果key的值不是整数,则报错(error) 如果指定的key不存在,则在执行incr操作之前,会将他的值设为0
127.0.0.1:6379> get key8"21"127.0.0.1:6379> decrby key8 10(integer) 11127.0.0.1:6379> get key8"11"