Redis基本操作

实验环境

一台Redis主机:192.168.8.8

将软件包拖入/data/soft中

mkdir -p /data/soft

cd /data/soft/

mkdir -p /opt/redis_cluster/redis_6379/{conf,logs,pid}

cd /data/soft/

解压至/opt/redis_cluster/

tar xf redis-5.0.7.tar.gz -C /opt/redis_cluster/

创建链接

ln -s /opt/redis_cluster/redis-5.0.7/ /opt/redis_cluster/redis

进入此目录查看

cd /opt/redis_cluster/

ll

yum -y install gcc gcc-c++(选装)

进入 /opt/redis_cluster/redis进行编译安装

cd /opt/redis_cluster/redis

make && make install

编辑redis配置文件

vim /opt/redis_cluster/redis_6379/conf/6379.conf

bind 127.0.0.1 192.168.8.8

port 6379

daemonize yes

pidfile /opt/redis_cluster/redis_6379/pid/redis_6379.pid

logfile /opt/redis_cluster/redis_6379/logs/redis_6379.log

databases 16

dbfilename redis.rdb

dir /opt/redis_cluster/redis_6379

save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。

save 300 10     #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。

save 60 10000   #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照

appendonly yes

appendfilename "redis.aof"

appendfsync everysec

开启此服务

redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

查看端口状态

netstat -anpt | grep redis

 键(Key)相关命令

  • SET key value:设置指定键的值。

  • 示例SET name "John",将键name的值设置为John

  • GET key:获取指定键的值。

  • 示例GET name,返回键name的值John

  • DEL key [key ...]:删除一个或多个键。

  • 示例DEL name,删除键name

  • EXISTS key:检查指定的键是否存在。

  • 示例EXISTS name,如果键name存在,返回1;否则,返回0

  • TTL key:获取键的剩余生存时间,以秒为单位。

  • 示例TTL name,假设name键设置了过期时间,返回剩余的秒数;如果没有设置过期时间,返回-1

字符串(String)相关命令

  • STRLEN key:获取字符串值的长度。

    • 示例STRLEN name,返回键name对应字符串值的长度,如John的长度为4

  • INCR key:将键的值递增1。如果键不存在,会先将其初始化为0再执行递增操作。

    • 示例INCR counter,假设counter键原来的值为5,执行后变为6;如果counter不存在,执行后变为1

  • DECR key:将键的值递减1。如果键不存在,会先将其初始化为0再执行递减操作。

    • 示例DECR counter,假设counter键原来的值为5,执行后变为4;如果counter不存在,执行后变为-1

  • APPEND key value:将指定的字符串值追加到键原来的值后面。如果键不存在,会创建一个新的键值对。

    • 示例APPEND name " Doe",假设name键原来的值为John,执行后变为John Doe

列表(List)相关命令

  • LPUSH key value [value ...]:将一个或多个值插入到列表的头部(左边)。

    • 示例LPUSH mylist "apple" "banana" "cherry",将applebananacherry依次插入到列表mylist的头部。

  • RPUSH key value [value ...]:将一个或多个值插入到列表的尾部(右边)。

    • 示例RPUSH mylist "date" "elderberry",将dateelderberry插入到列表mylist的尾部。

  • LPOP key:移除并返回列表头部的第一个元素。

    • 示例LPOP mylist,返回列表mylist头部的元素,如apple,并将其从列表中移除。

  • RPOP key:移除并返回列表尾部的最后一个元素。

    • 示例RPOP mylist,返回列表mylist尾部的元素,如elderberry,并将其从列表中移除。

  • LRANGE key start stop:获取列表中指定范围内的元素。索引从0开始,-1表示最后一个元素。

    • 示例LRANGE mylist 0 2,返回列表mylist中索引从02的元素,即bananacherrydate

集合(Set)相关命令

  • SADD key member [member ...]:将一个或多个成员添加到集合中。

    • 示例SADD myset "apple" "banana" "cherry",将applebananacherry添加到集合myset中。

  • SREM key member [member ...]:从集合中移除一个或多个成员。

    • 示例SREM myset "banana",从集合myset中移除banana

  • SMEMBERS key:返回集合中的所有成员。

    • 示例SMEMBERS myset,返回集合myset中的所有元素,如applecherry

  • SISMEMBER key member:检查成员是否在集合中。

    • 示例SISMEMBER myset "apple",如果apple在集合myset中,返回1;否则,返回0

哈希(Hash)相关命令

  • HSET key field value:为哈希表中的指定字段设置值。

    • 示例HSET myhash "name" "John" "age" "30",在哈希表myhash中设置name字段为Johnage字段为30

  • HGET key field:获取哈希表中指定字段的值。

    • 示例HGET myhash "name",返回哈希表myhashname字段的值John

  • HDEL key field [field ...]:删除哈希表中的一个或多个字段。

    • 示例HDEL myhash "age",从哈希表myhash中删除age字段。

  • HGETALL key:返回哈希表中的所有字段和值。

    • 示例HGETALL myhash,返回哈希表myhash中的所有字段和值,如nameJohn

有序集合(Sorted Set)相关命令

  • ZADD key score member [score member ...]:将一个或多个成员及其分数添加到有序集合中。

    • 示例ZADD myzset 10 "apple" 20 "banana" 30 "cherry",将applebananacherry添加到有序集合myzset中,分数分别为102030

  • ZRANGE key start stop [WITHSCORES]:获取有序集合中指定范围内的成员。如果使用WITHSCORES选项,还会返回成员的分数。

    • 示例ZRANGE myzset 0 2 WITHSCORES,返回有序集合myzset中索引从02的成员及其分数,如apple的分数为10banana的分数为20cherry的分数为30

  • ZREM key member [member ...]:从有序集合中移除一个或多个成员。

    • 示例ZREM myzset "apple",从有序集合myzset中移除apple

  • ZSCORE key member:获取有序集合中指定成员的分数。

    • 示例ZSCORE myzset "banana",返回banana在有序集合myzset中的分数20

登录redis

redis-cli

使用IP登录

redis-cli -h 192.168.8.8

[root@node13 redis]# redis-cli -h 192.168.8.8

192.168.8.8:6379> keys *

(empty list or set)

192.168.8.8:6379> set k1 1

OK

192.168.8.8:6379> keys *

1) "k1"

192.168.8.8:6379> mset k2 2 k3 3 k4 4 k5 5 k6 6

OK

192.168.8.8:6379> keys *

1) "k5"

2) "k1"

3) "k2"

4) "k3"

5) "k6"

6) "k4"

192.168.8.8:6379> get k1

"1"

192.168.8.8:6379> mget k1 k2 k3 k4 k5 k6

1) "1"

2) "2"

3) "3"

4) "4"

5) "5"

6) "6"

192.168.8.8:6379> type k1

string

192.168.8.8:6379> dbsize

(integer) 6

192.168.8.8:6379> exists k1

(integer) 1

192.168.8.8:6379> exists k2

(integer) 1

192.168.8.8:6379> exists k100

(integer) 0

192.168.8.8:6379> set k1 1000

OK

192.168.8.8:6379> get k1

"1000"

192.168.8.8:6379> ttl k1

(integer) -1

192.168.8.8:6379> expire k1 20

(integer) 1

192.168.8.8:6379> ttl k1

(integer) 11

192.168.8.8:6379> ttl k1

(integer) 9

192.168.8.8:6379> ttl k1

(integer) 6

192.168.8.8:6379> ttl k1

(integer) 4

192.168.8.8:6379> ttl k1

(integer) 3

192.168.8.8:6379> ttl k1

(integer) 0

192.168.8.8:6379> set k1 1

OK

192.168.8.8:6379> expire k1 20

(integer) 1

192.168.8.8:6379> ttl k1

(integer) 11

192.168.8.8:6379> ttl k1

(integer) 8

192.168.8.8:6379> ttl k1

(integer) 4

192.168.8.8:6379> ttl k1

(integer) 3

192.168.8.8:6379> ttl k1

(integer) 3

192.168.8.8:6379> ttl k1

(integer) 1

192.168.8.8:6379> ttl k1

(integer) -2

192.168.8.8:6379> ttl k1

(integer) -2

192.168.8.8:6379> del k6

(integer) 1

192.168.8.8:6379> keys *

1) "k5"

2) "k2"

3) "k3"

4) "k4"

192.168.8.8:6379> get k1

(nil)

192.168.8.8:6379> set k1 1

OK

192.168.8.8:6379> get k1

"1"

192.168.8.8:6379> incr k1

(integer) 2

192.168.8.8:6379> incr k1

(integer) 3

192.168.8.8:6379> incr k1

(integer) 4

192.168.8.8:6379> incr k1

(integer) 5

192.168.8.8:6379> incr k1

(integer) 6

192.168.8.8:6379> get k1

"6"

192.168.8.8:6379> incrby k1 10

(integer) 16

192.168.8.8:6379> incrby k1 10

(integer) 26

192.168.8.8:6379> incrby k1 100

(integer) 126

192.168.8.8:6379> rpush list1 2 3 4

(integer) 3

192.168.8.8:6379> rpush list 1 2 3 4

(integer) 5

192.168.8.8:6379> lrange list1 0 -1

1) "2"

2) "3"

3) "4"

192.168.8.8:6379> rpush list1 5 6 7 8

(integer) 7

192.168.8.8:6379> lrange list1 0 -1

1) "2"

2) "3"

3) "4"

4) "5"

5) "6"

6) "7"

7) "8"

192.168.8.8:6379> lpush list1 0

(integer) 8

192.168.8.8:6379> lrange list1 0 -1

1) "0"

2) "2"

3) "3"

4) "4"

5) "5"

6) "6"

7) "7"

8) "8"

192.168.8.8:6379> lrange list1 0 2

1) "0"

2) "2"

3) "3"

192.168.8.8:6379> lrange list1 0 0

1) "0"

192.168.8.8:6379> rpop list1

"8"

192.168.8.8:6379> lrange list1 0 -1

1) "0"

2) "2"

3) "3"

4) "4"

5) "5"

6) "6"

7) "7"

192.168.8.8:6379> lpop list1

"0"

192.168.8.8:6379> lrange list1 0 -1

1) "2"

2) "3"

3) "4"

4) "5"

5) "6"

6) "7"

192.168.8.8:6379> lrange list1 0 2

1) "2"

2) "3"

3) "4"

192.168.8.8:6379> lrange list1 0 -1

1) "2"

2) "3"

3) "4"

4) "5"

5) "6"

6) "7"

192.168.8.8:6379> lrange list1 0 1

1) "2"

2) "3"

192.168.8.8:6379> hmset user:1000 username zhangsan age 17 job it

OK

192.168.8.8:6379> user:100 username

(error) ERR unknown command `user:100`, with args beginning with: `username`,

192.168.8.8:6379> hmget user:1000 username

1) "zhangsan"

192.168.8.8:6379> hmget user:1000 username age

1) "zhangsan"

2) "17"

192.168.8.8:6379> hmget user:1000 username age job

1) "zhangsan"

2) "17"

3) "it"

192.168.8.8:6379> hmset user:1000 tel 16666666

OK

192.168.8.8:6379> hmget user:1000 username age job tel

1) "zhangsan"

2) "17"

3) "it"

4) "16666666"

192.168.8.8:6379> type user:1000

hash

192.168.8.8:6379> sadd set1 1 2 3 4

(integer) 4

192.168.8.8:6379> SMEMBERS set1

1) "1"

2) "2"

3) "3"

4) "4"

192.168.8.8:6379> lrange list1 0 -1

1) "2"

2) "3"

3) "4"

4) "5"

5) "6"

6) "7"

192.168.8.8:6379> lpush list1 3 2 1

(integer) 9

192.168.8.8:6379> lrange list1 0 -1

1) "1"

2) "2"

3) "3"

4) "2"

5) "3"

6) "4"

7) "5"

8) "6"

9) "7"

192.168.8.8:6379> SMEMBERS set1

1) "1"

2) "2"

3) "3"

4) "4"

192.168.8.8:6379> sadd set1 1 2 3 4

(integer) 0

192.168.8.8:6379> SMEMBERS set1

1) "1"

2) "2"

3) "3"

4) "4"

192.168.8.8:6379> sadd set1 5

(integer) 1

192.168.8.8:6379> SMEMBERS set1

1) "1"

2) "2"

3) "3"

4) "4"

5) "5"

192.168.8.8:6379> sadd set2 3 4 5 6 7

(integer) 5

192.168.8.8:6379> SMEMBERS set2

1) "3"

2) "4"

3) "5"

4) "6"

5) "7"

192.168.8.8:6379> sdiff set1 set2

1) "1"

2) "2"

192.168.8.8:6379> sinter set1 set2

1) "3"

2) "4"

3) "5"

192.168.8.8:6379> sunion set1 set2

1) "1"

2) "2"

3) "3"

4) "4"

5) "5"

6) "6"

7) "7"

关闭redis服务(暂时不关)

redis-cli shutdown

redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

vim /opt/redis_cluster/redis_6379/conf/6379.conf

redis-cli shutdown

redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

redis-cli

redis-cli shutdown

redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

redis-cli

cd /opt/redis_cluster/redis_6379/

ls

命令

描述

KEYS

查看符合模板的所有key,比较占用内存,不建议在正式环境使用

DEL

删除一个指定的key

EXISTS

判断key是否存在

EXPIRE

给一个key设置有效期,有效期到期时该key会被自动删除

TTL

查看一个KEY的剩余有效期

查看当前以n开头的key: key n*

批量增加key:mset k1 v1 k2 v2 k3 v3

Redis 命令参考 — Redis 命令参考

RDB:生成时间点快照,保存于硬盘

优点:速度快,适合做备份,能做主从复制,单开子进程进行rdb操作不影响主业务

缺点:会有部分数据丢失

AOF:记录所有写操作命令,通过再次执行这些命令还原数据

优点:最大程度保证数据不丢失

缺点:日志记录量太大

bgsaverdb保存命令

vim /opt/redis_cluster/redis_6379/conf/6379.conf

添加

save 900 1           

save 300 10          

save 60 10000       

AOF配置

vim /opt/redis_cluster/redis_6379/conf/6379.conf

添加:

appendonly yes#启用AOF持久化

appendfilename "redis.aof"#指定AOF文件名

appendfsync everysec#每秒同步一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值