暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

Redis安装部署、全局命令、字符串操作、hash操作、集合操作

原创 史天赐 云和恩墨 2022-04-30
798

Redis安装部署

1.redis官网

https://redis.io/

2.版本选择

2.x     very old
3.x     redis-cluster 
4.x     混合持久化
5.x     新增加了流处理类型 最新稳定版 

3.规划目录

/data/soft  下载目录  
/opt/redis_6379/{conf,logs,pid} 安装目录,日志目录,pid目录,配置目录
/data/redis_6379/  数据目录

4.安装命令

mkdir /data/soft -p
cd /data/soft 
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar xf redis-5.0.7.tar.gz -C /opt/
ln -s /opt/redis-5.0.7 /opt/redis
cd /opt/redis
make 
make install 

5.配置文件

mkdir -p /opt/redis_6379/{conf,pid,logs}
mkdir -p /data/redis_6379
cat >/opt/redis_6379/conf/redis_6379.conf<< EOF
daemonize yes 
bind 127.0.0.1 10.0.0.51
port 6379
pidfile /opt/redis_6379/pid/redis_6379.pid
logfile /opt/redis_6379/logs/redis_6379.log
EOF

6.启动命令

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

7.检查

ps -ef|grep redis
netstat -lntup|grep 6379

8.连接redis终端

[root@db01 ~]# redis-cli
127.0.0.1:6379> 
127.0.0.1:6379> set k1 v1 
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379>

9.关闭命令

kill 
pkill 
redis-cli
>SHUTDOWN
- redis-cli shutdown

10.system启动配置

groupadd -g 1000 redis
useradd -u 1000 -g 1000 -M -s /sbin/nologin
chown -R redis:redis /data/redis*
chown -R redis:redis /opt/redis*
cat >/usr/lib/systemd/system/redis.service<<EOF
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/redis /opt/redis_6379/conf/redis_6379.conf --supervised systemd
ExecStop=/usr/local/bin/redis-cli -h $(ifconfig eth0|awk 'NR==2{print $2}') -p 6379 shutdown
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload 
systemctl start redis

Redis全局命令

全局命令是指对所有数据类型都通用的命令

0.redis数据格式

key:value
键:值

1.写入测试key

set k1 v1
set k2 v2 
set k3 v3

2.查看所有的key

!!!危险命令!!!此操作未满30岁禁止请在家人的看管下执行

keys *

3.查看有多少个key

DBSIZE

4.查看某个Key是否存在

EXISTS k1 

状态码:
0 表示这个key不存在 
1 表示这个key存在
N 表示存在N个key

5.删除key

DEL k1 
DEL k1 k2 

状态码:
0   表示这个key不存在
1   表示这个key存在,并且删除成功了
N   表示N个key存在,并且删除成功了N个key

6.键过期

设置过期时间

EXPIRE k1 10

状态码:
0   这个key不存在
1   这个key存在,并且设置过期时间成功

查看keys是否过期

TTL k1 

状态码:
-1  这个key存在,并且没有设定存活周期,永不过期
-2  这个key不存在
N   这个key存在,并且在N秒后过期

取消过期时间:

第一种方法:
PERSIST k1

第二种方法:
set k1 v1

结论:
过期后的key会被直接删除

字符串操作

1.设置一个key

set k1 v1

2.查看一个key

get k1

3.设置多个key

MSET k1 v1 k2 v2 k3 v3 k4 v4

4.查看多个key

MGET k1 k2 k3 k4

5.天然计数器

加1:
SET k1 1
INCR k1
GET k1

加N:
INCRBY k1 100

减1:
INCRBY k1 -1

减N:
INCRBY k1 -100

 列表操作

1.插入列表

LPUSH: 从列表左侧插入数据
RPUSH: 从列表右侧插入数据

2.查看列表长度

LLEN list1

3.查看列表内容

LRANGE list1 0 -1

4.删除列表元素

LPOP: 从列表左边删除一个元素
RPOP: 从列表右边删除一个元素

LPOP list1
RPOP list1 

5.删除整个列表

DEL list1

hash操作

1.mysql数据如何缓存到redis

存储格式:
user
id name   job  age
1  bobo   IT   28
2  json   py   25
3  hao    bug  26
  
hash类型存储格式:
key    field value field   value        
user:1   name  bobo  job     IT     age 28
user:2   name  json  job     py     age 25
user:3   name  hao   job     bug    age 26

2.创建一个Hash数据

HMSET user:1 name bobo job IT age 28
HMSET user:2 name json job py age 29
HMSET user:3 name hao job bug age 19 

3.查看hash里指定的值

select name from user where id =1 ;
  
HMGET user:1 name  
HMGET user:1 name job age

4.查看Hash里所有的值

select * from user where id =1 ;

HGETALL user:1

 集合操作 set

1.创建集合

SADD set1 1 2 3
SADD set2 1 3 5 7 

2.查看集合成员

SMEMBERS set1
SMEMBERS set2

3.查看集合的交集

127.0.0.1:6379> SINTER set1 set2
1) "1"
2) "3"

4.查看集合的并集

127.0.0.1:6379> SUNION set1 set2
1) "1"
2) "2"
3) "3"
4) "5"
5) "7"

5.查看集合的差集

127.0.0.1:6379> SDIFF set1 set2
1) "2"
  
127.0.0.1:6379> SDIFF set2 set1
1) "5"
2) "7"

6.删除一个成员

SREM set1 1

6.注意

集合不允许出现重复的值,自动去重

有序集合操作

1.添加成员

ZADD SZ3 100 json
ZADD SZ3 90 bobo
ZADD SZ3 99 xiaocancan
ZADD SZ3 98 bughao

2.计算成员个数

ZCARD SZ3

3.计算某个成员分数

ZSCORE SZ3 json

4.按照降序查看成员名次:

ZRANK SZ3 json
ZRANK SZ3 bobo

5.按照升序查看成员名次:

ZREVRANK SZ3 json
ZREVRANK SZ3 bobo

6.删除成员

ZREM SZ3 json

7.增加成员分数

ZINCRBY SZ3 2 xiaocancan
ZSCORE SZ3 xiaocancan

8.返回指定排名范围的成员

ZRANGE SZ3 0 3 
ZRANGE SZ3 0 3 WITHSCORES

9.返回指定分数范围的成员

ZRANGEBYSCORE SZ3 95 100
ZRANGEBYSCORE SZ3 95 100  WITHSCORES

10.返回指定分数范围的成员的个数

ZCOUNT SZ3 90 110
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论