Redis一-安装部署

Redis安装

https://download.redis.io/releases/ # redis下载
https://github.com/RedisJSON/RedisJSON/ # redis_json下载

tar -zxvf redis-7.0.12.tar.gz -C /usr/local
cd /usr/local/redis-7.0.12
make install

vim redis.conf
修改一下内容

bind 0.0.0.0
requirepass 123456
daemonize yes  # 后台启动

vim /etc/systemd/system/redis.service

[Unit]
Description=Redis
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis-7.0.12/src/redis-server /usr/local/redis-7.0.12/redis.conf
ExecStop=/usr/local/redis-7.0.12/src/redis-server -s stop
PrivateTmp=true
User=root
Group=root

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable redis --now

RedisJSON安装

下载、编译

tar -zxvf RedisJSON-1.0.4.tar.gz
cd RedisJSON-1.0.4/
make
cd /usr/local/redis-7.0.12/
mkdir module
cp /xxx/RedisJSON-1.0.4//src/rejson.so /usr/local/redis-7.0.12/module/


vim redis.conf
最后一行添加
loadmodule /usr/local/redis-7.0.12/module/rejson.so

连接测试

redis-cli -h 10.135.114.14 -p 6379 -a 123456
module list

命令

redis-tool -s ID -a info
+-------------------+------------------------------------------------------------------------------+
| KEY | VALUE |
+-------------------+------------------------------------------------------------------------------+
| appid | XX |
| Serialid | ID |
| vip | 10.135.114.16:6379 |
| userid | XX |
| password | |
| redispassword | Lc2wnfBEdzZX749grmWCDItqxyuljhopMv6T3NaJikYOK801 |
| replicas | 1 |
| shards | 1 |
| maxmem | 1073741824 |
| net_limit | 16777216 |
| client_limit | 10000 |
| disable_interface | 0 |
| disabled_cmd | config:set,save,bgsave,bgrewriteaof,shutdown,slaveof,debug,sync,psync,module |
| slave_read_weight | 100 |
| version | 4.7.3(5.8.1:5.0.7) |
| arbiter_type | |
| pool_label | default_pool:x86 |
+-------------------+------------------------------------------------------------------------------+

redis-tool -s ID -a redischeck
+----------+--------------+------+---------+-------+------+---------+----------+------------+------+
| APPID | IP | PORT | TYPE | STATE | PING | VERSION | GIT | SALEMEM | SNUM |
+----------+--------------+------+---------+-------+------+---------+----------+------------+------+
| XX | 10.163.0.156 | 6720 | proxy | 1 | ok | 5.8.11 | d138c65e | 0 | 0 |
| XX | 10.163.0.156 | 8374 | proxy | 1 | ok | 5.8.11 | d138c65e | 0 | 0 |
| XX | 10.163.0.29 | 9305 | proxy | 1 | ok | 5.8.11 | d138c65e | 0 | 0 |
| XX | 10.163.0.159 | 2100 | master | 1 | ok | 5.2.14 | d07a29f4 | 1073741824 | 1 |
| XX | 10.163.0.31 | 3473 | slave | 1 | ok | 5.2.14 | d07a29f4 | 1073741824 | 0 |
| XX | 10.163.0.156 | 4340 | arbiter | 1 | ok | 5.2.14 | d07a29f4 | 134217728 | 0 |
| XX | 10.163.0.29 | 2114 | arbiter | 1 | ok | 5.2.14 | d07a29f4 | 134217728 | 0 |
+----------+--------------+------+---------+-------+------+---------+----------+------------+------+

python

list

import redis
# 创建一个StrictRedis对象,连接到本地Redis服务
r = redis.StrictRedis(host='10.135.114.16', port=6379, db=0)
# List操作
r.lpush('mylist', 'item1', 'item2')  # 向列表左侧添加元素
r.rpush('mylist', 'item3', 'item4')  # 向列表右侧添加元素

# 获取 mylist 中所有元素(0 表示第一个,-1 表示最后一个)
items = r.lrange('mylist', 0, -1)
print([item.decode() for item in items])  # 输出:['item2', 'item1', 'item3', 'item4']

# 弹出【删除】并返回左侧第一个元素
left_item = r.lpop('mylist')
# 弹出【删除】并返回右侧最后一个元素
right_item = r.rpop('mylist')
print(left_item.decode())

# 获取 mylist 的元素个数
length = r.llen('mylist')

# 删除key【任意类型】
r.delete("key1", "key2", "key3")  # 删除一个或多个键

set

import redis

# 连接 Redis(根据实际情况配置参数)
r = redis.Redis(host='localhost', port=6379, db=0, decode_responses=True)
# 注意:decode_responses=True 可自动将返回的 bytes 转为 str,避免手动 decode()

# 1. 向集合添加元素(SADD):添加一个或多个元素,已存在的元素会被忽略
r.sadd('cities', '北京', '上海', '广州')  # 返回新增元素数量:3

# 2. 获取集合所有元素(SMEMBERS):返回无序列表
print(r.smembers('cities'))  # 输出:{'北京', '上海', '广州'}(集合类型,无序)

# 3. 判断元素是否在集合中(SISMEMBER):存在返回 True,否则 False
print(r.sismember('cities', '北京'))  # 输出:True
print(r.sismember('cities', '深圳'))  # 输出:False

# 4. 删除集合中的元素(SREM):删除一个或多个元素,返回删除成功的数量
r.srem('cities', '广州')  # 返回 1(删除了'广州')

# 5. 获取集合长度(SCARD):返回元素个数
print(r.scard('cities'))  # 输出:2(剩余'北京'、'上海')

# 6. 集合运算:交集、并集、差集
r.sadd('cities2', '上海', '深圳', '杭州')  # 新建另一个集合

# 交集(SINTER):两个集合共有的元素
print(r.sinter('cities', 'cities2'))  # 输出:{'上海'}

# 并集(SUNION):两个集合所有元素(去重)
print(r.sunion('cities', 'cities2'))  # 输出:{'北京', '上海', '深圳', '杭州'}

# 差集(SDIFF):前者有、后者没有的元素
print(r.sdiff('cities', 'cities2'))  # 输出:{'北京'}

# 7. 随机获取元素(SRANDMEMBER):随机返回n个元素(不删除)
print(r.srandmember('cities', 1))  # 随机返回1个元素,如 ['北京']

# 8. 随机删除并返回元素(SPOP):随机删除并返回1个元素
print(r.spop('cities'))  # 如输出:'上海'(此时集合仅剩'北京')

# 9. 删除整个集合(DEL):通用命令,删除集合key
r.delete('cities')  # 删除集合'cities'
posted @ 2026-09-09 15:56  WiseHYH  阅读(4)  评论(0)    收藏  举报