打开官网,下载稳定版本
Download | Redis
下载后,解压,将解压后文件夹放到/usr/local
切换到相应目录,编译测试、编译安装
cd /usr/local/redis-7.2.4/
sudo make test
sudo make install
redis-server
redis-cli
wyl@WYLdeMacBook-Air redis % redis-cli
127.0.0.1:6379> auth
(error) ERR wrong number of arguments for 'auth' command
127.0.0.1:6379> set aa bb
OK
127.0.0.1:6379> get aa
"bb"
127.0.0.1:6379>
redis-cli -h host -p port
auth password
wyl@WYLdeMacBook-Air redis % redis-cli -h 172.20.100.133 -p 6379
172.20.100.133:6379> auth xxxxx
OK
redis-cli shutdown
wyl@WYLdeMacBook-Air ~ % redis-cli shutdown
44035:M 07 Feb 2024 17:44:22.777 * User requested shutdown...
44035:M 07 Feb 2024 17:44:22.777 * Saving the final RDB snapshot before exiting.
44035:M 07 Feb 2024 17:44:22.780 * DB saved on disk
44035:M 07 Feb 2024 17:44:22.780 # Redis is now ready to exit, bye bye...
[1] + done redis-server
wyl@WYLdeMacBook-Air ~ % redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>
ttl key
以秒为单位返回key的剩余过期时间
返回-1表示永不过期,
返回-2表示key不存在,
返回正数表示还剩下多少秒过期
pttl key
以毫秒为单位返回key的剩余过期时间
psetex key millionseconds value
设置 key 值,同时设置多少毫秒后过期
expire key seconds
设置 key 多少秒后过期,key存在返回1,key不存在返回0
pexpire key millionseconds
设置 key 多少毫秒后过期,key存在返回1,key不存在返回0
persist key
移除key的过期时间,变成永不过期
expireat key 时间戳(毫秒/秒?)
时间戳开始使用毫秒,后来毫秒不好用了,秒可以。。。表示到这个时间戳过期
172.20.100.133:6379> set mykey adcd
OK
172.20.100.133:6379> ttl mykey
(integer) -1
172.20.100.133:6379> setex mykey 60 aaa
OK
172.20.100.133:6379> get mykey
"aaa"
172.20.100.133:6379> ttl mykey
(integer) 51
172.20.100.133:6379> pttl mykey
(integer) 50145
172.20.100.133:6379> expire mykey 600
(integer) 1
172.20.100.133:6379> ttl mykey
(integer) 593
172.20.100.133:6379> psetex mykey 60000 bbb
OK
172.20.100.133:6379> get mykey
"bbb"
172.20.100.133:6379> ttl mykey
(integer) 53
172.20.100.133:6379> expireat mykey2 1707100279
(integer) 1
172.20.100.133:6379> ttl mykey2
(integer) 98
172.20.100.133:6379> pexpire mykey 600000
(integer) 1
172.20.100.133:6379> ttl mykey
(integer) 597
172.20.100.133:6379> persist mykey
(integer) 1
172.20.100.133:6379> ttl mykey
(integer) -1
172.20.100.133:6379> expire mykey100 60
(integer) 0
172.20.100.133:6379> pexpire mykey200 60000
(integer) 0
keys pattern
查找符合给定模式的key
del key1 key2 key3 ...
删除多个key,存在的key删除,不存在的不删除,返回成功删除的个
exists key1 key2 key3 ...
判断key是否存在,返回存在的数量
172.20.100.133:6379> keys my*
1) "mykey1"
2) "mykey2"
3) "mykey3"
4) "mykey4"
4) "mykey5"
172.20.100.133:6379> del mykey1 mykey2
(integer) 2
172.20.100.133:6379> del mykey3 mykey10
(integer) 1
172.20.100.133:6379> exists mykey1 mykey2 mykey3 mykey4 mykey5
(integer) 2
172.20.100.133:6379> exists mykey1 mykey2 mykey3
(integer) 0
(2.04s)
rename key newkey
如果key 不存在,返回err
如果newkey 存在,newkey被覆盖(执行后,newkey的值为key的值)
renamenx key newkey
newkey 不存在时,才会重命名,返回1
newkey 存在时,重命名失败,返回0
172.20.100.133:6379> keys my*
1) "mykey3"
2) "mykey1"
172.20.100.133:6379> rename mykey mykey2
(error) ERR no such key
172.20.100.133:6379> rename mykey1 mykey2
OK
172.20.100.133:6379> keys my*
1) "mykey2"
2) "mykey3"
172.20.100.133:6379> mget mykey2 mykey3
1) "a"
2) "b"
(0.63s)
172.20.100.133:6379> rename mykey2 mykey3
OK
(1.18s)
172.20.100.133:6379> keys my*
1) "mykey3"
172.20.100.133:6379> get mykey3
"a"
172.20.100.133:6379> set mykey4 ccc
OK
172.20.100.133:6379> mget mykey3 mykey4
1) "a"
2) "ccc"
172.20.100.133:6379> renamenx mykey3 mykey4
(integer) 0
172.20.100.133:6379> mget mykey3 mykey4
1) "a"
2) "ccc"
172.20.100.133:6379> renamenx mykey3 mykey5
(integer) 1
172.20.100.133:6379> keys my*
1) "mykey5"
2) "mykey4"
172.20.100.133:6379> mget mykey4 mykey5
1) "ccc"
2) "a"
172.20.100.133:6379>
type key
172.20.100.133:6379> type mykey4
string
set key value
不设置过期时间,默认永不过期
setex key seconds value
设置 key 值,同时设置多少秒后过期
mset key1 value1 key2 value2 ...
批量设置多个key
mget key1 key2 ...
批量获取多个key,存在的key返回value,不存在的返回nil
strlen key
获取key的长度,key存在,返回长度;key不存在返回0
getrange key start end
从start 坐标到end坐标,[start,end]
getset key value
key的值设置成value,返回key的旧值
如果key不存在,返回nil
setnx key value
key 不存在时设置key的值,返回1
key 存在时,设置失败,返回0
incr key
key 值加1
如果key不存在返回1,新建key,值为1
如果key存在,且可以转化成整数,加1;不可以转化成整数,返回error
incrby key increment
key 值加increment
如果key不存在返回increment,新建key,值为increment
如果key存在,且可以转化成整数,加increment;不可以转化成整数,返回error
decrement为负数,变成减
decr key
key 值减1
如果key不存在返回-1,新建key,值为-1
如果key存在,且可以转化成整数,减1;不可以转化成整数,返回error
decrby key decrement
key 值减increment
如果key不存在返回decrement,新建key,值为decrement
如果key存在,且可以转化成整数,减decrement;不可以转化成整数,返回error
decrement为负数,变成加
append key value
追加字符,
如果key存在,再原来的值后面追加value,返回追加后字符长度
如果key 不存在,创建新的key,返回value的长度
incrbyfloat key increment
给key 加上浮点值
key的值可以不是浮点值
increment也可以不是浮点值
172.20.100.133:6379> mset key1 aa key2 bb
OK
(1.04s)
172.20.100.133:6379> mget key1 key2 key3
1) "aa"
2) "bb"
3) (nil)
172.20.100.133:6379> set mykey abcdefg
OK
172.20.100.133:6379> strlen mykey
(integer) 7
172.20.100.133:6379> strlen mykey1111
(integer) 0
172.20.100.133:6379> getrange mykey 1 3
"bcd"
172.20.100.133:6379> getset mykey 123
"abcdefg"
172.20.100.133:6379> getset mykey1 456
(nil)
172.20.100.133:6379> keys my*
1) "mykey5"
2) "mykey4"
3) "mykey1"
4) "mykey"
172.20.100.133:6379> setnx mykey bbb
(integer) 0
172.20.100.133:6379> setnx mykey2 bbb
(integer) 1
172.20.100.133:6379> set mykey6 10
OK
172.20.100.133:6379> incr mykey6
(integer) 11
172.20.100.133:6379> incrby mykey6 5
(integer) 16
172.20.100.133:6379> decr mykey6
(integer) 15
172.20.100.133:6379> decrby mykey6 3
(integer) 12
172.20.100.133:6379> append mykey6 aaaa
(integer) 6
172.20.100.133:6379> get mykey6
"12aaaa"
172.20.100.133:6379> incrbyfloat mykey11 2.3
"5.3"
172.20.100.133:6379> incrbyfloat mykey10 2
"5"
HSET key field value
将哈希表 key 中的字段 field 的值设为 value 。
HGET key field
获取存储在哈希表中指定字段的值
HMSET key field1 value1 [field2 value2 ]
同时将多个 field-value (域-值)对设置到哈希表 key 中
HMGET key field1 [field2]
获取所有给定字段的值10
HGETALL key
获取在哈希表中指定 key 的所有字段和值
HKEYS key
获取哈希表中的所有字段
HVALS key
获取哈希表中所有值。
HLEN key
获取哈希表中字段的数量
HEXISTS key field
查看哈希表 key 中,指定的字段是否存在,存在返回1,不存在返回0;key不存在返回error
HSETNX key field value
只有在字段 field 不存在时,设置哈希表字段的值。设置成功返回1,不成功返回0
HINCRBY key field increment
为哈希表 key 中的指定字段的整数值加上增量 increment 。
key或者field 不存在,创建对应的key或者fileld
HINCRBYFLOAT key field increment
为哈希表 key 中的指定字段的浮点数值加上增量 increment
HSCAN key cursor [MATCH pattern] [COUNT count]
迭代哈希表中的键值对。
HDEL key field1 [field2]
删除一个或多个哈希表字段
172.20.100.133:6379> hset my1 name bsh
(integer) 1
172.20.100.133:6379> hget my1 name
"bsh"
172.20.100.133:6379> hmset my name wyl gender female
OK
172.20.100.133:6379> hmget my name gender
1) "wyl"
2) "female"
172.20.100.133:6379> hgetall my
1) "name"
2) "wyl"
3) "gender"
4) "female"
172.20.100.133:6379> hkeys my
1) "name"
2) "gender"
172.20.100.133:6379> hvals my
1) "wyl"
2) "female"
172.20.100.133:6379> hlen my
(integer) 2
172.20.100.133:6379> hexists my name
(integer) 1
172.20.100.133:6379> hexists my name1
(integer) 0
172.20.100.133:6379> hexists my2
(error) ERR wrong number of arguments for 'hexists' command
172.20.100.133:6379> hsetnx my age 10
(integer) 1
172.20.100.133:6379> hsetnx my age 10
(integer) 0
72.20.100.133:6379> hincrby my age 2
(integer) 12
172.20.100.133:6379> hincrby my age1 2
(integer) 2
172.20.100.133:6379> hincrby my2 age1 2
(integer) 2
172.20.100.133:6379> hdel my age age1
(integer) 2
LPUSH key value1 [value2]
将一个或多个值插入到列表头部,
如果列表不存在,创建新的
返回列表长度
LPOP key
移出并获取列表的第一个元素
如果key的所有元素,都被移除了,key也会被删除,此时返回nil
BLPOP key1 [key2 ] timeout
移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
BRPOP key1 [key2 ] timeout
移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
。
BRPOPLPUSH source destination timeout
从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
LINDEX key index
通过索引获取列表中的元素,元素不出列,
注意队列头部,也就是最后插入的元素,index为0
LINSERT key BEFORE|AFTER pivot value
在列表的元素前或者后插入元素
LLEN key
获取列表长度
LPUSHX key value
将一个值插入到已存在的列表头部
LRANGE key start stop
获取列表指定范围内的元素
LREM key count value
移除列表元素
LSET key index value
通过索引设置列表元素的值
LTRIM key start stop
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
RPOP key
移除列表的最后一个元素,返回值为移除的元素。
1
RPOPLPUSH source destination
移除列表的最后一个元素,并将该元素添加到另一个列表并返回
RPUSH key value1 [value2]
在列表中添加一个或多个值到列表尾部
RPUSHX key value
为已存在的列表添加值
172.20.100.133:6379> lpush mylist a b
(integer) 2
172.20.100.133:6379> lpop mylist
"b"
172.20.100.133:6379> lpop mylist
"a"
172.20.100.133:6379> lpop mylist
(nil)