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'

浙公网安备 33010602011771号