redis

一、redis 安装

1、下载

打开官网,下载稳定版本

Download | Redis

redis_第1张图片

2、安装

下载后,解压,将解压后文件夹放到/usr/local

切换到相应目录,编译测试、编译安装

cd /usr/local/redis-7.2.4/

sudo make test

sudo make install

3、启动

redis-server

4、连接

4.1 连接本地启动的redis

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> 
4.2 连接服务器上的redis

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

5、停止redis 服务

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> 

二、redis命令

1、key 相关操作

1.1 过期时间

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
1.2 查询、删除、是否存在

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)
1.3 修改key的名字

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> 

1.4 获取key值类型

type key

172.20.100.133:6379> type mykey4
string

2、Redis 字符串(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"

3、Redis 哈希(Hash)

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

4、Redis 列表(List)

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)

你可能感兴趣的:(redis,java,mybatis)