基础使用
基础概念
知识点
- redis 默认有16个数据库,从0~15
- 默认使用的是0号数据库
基础语法
持久化
- aof
- rdb
主要类型
redis是一个key-value存储系统。
- 字符串
- 链表
- 集合
- 哈西类型
主要操作
这些操作都是原子性的
- push
- pop
- add
- remove
- 交集/并集/差集
主从同步
数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
基础使用
下载
# 下载地址
# win版需要自己编译
https://github.com/redis/redis/releases
https://blog.csdn.net/weixin_41674401/article/details/109384667
安装
- window
win平台的redis需要自己编译
linux
# linux 切换高版本的gcc编译
yum -y install gcc-c++
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
# 临时使用高版本的gcc
scl enable devtoolset-9 bash
# 永久使用高版本的gcc
echo -e “/nsource /opt/rh/devtoolset-9/enable” >>/etc/profile
make && make install
tar -zxvf redis-6.0.5.tar.gz
tar -zxvf redis-6.0.9.tar.gz
# 进入/usr/local/bin目录就可看到redis
# 默认编译安装是没有redis.conf的,可以从源目录拷贝过来
启停服务
win
.\redis-sentinel.exe # 启动服务
..\redis-cli.exe # 进入redis# run.bat
start "" %~dp0redis-server.execentos
# 启动并后台
./redis-server &
# 启动 指定conf
./redis-server /usr/local/redis/etc/redis.conf
# 指定端口等
./redis-cli -p 6379
./redis-cli -h 127.0.0.1 -p 6379 -a 12345 # 指定参数进入
# 停止
./redis-cli -p 6379
shutdown
exit
语言调用
python
./python.exe -m pip install RedisPy
import RedisPy
from redis import StrictRedis
from resis
# 默认连接127.0.0.1:6379
# decode_responses=True 去掉 b 开头
r = StrictRedis(decode_responses=True)
# 显示指定主机、端口号和数据库
r = StrictRedis(host='127.0.0.1', port=6379, db=0,decode_responses=True)
# 增
r.set(ket,val)
r.getset(key,val) - 返回旧键值, 并更新该键
r.setnx(ksey,val) - 如果不存在,则创建, 否则不动
r.setex(name, time, value) - 设置可以对应的值为string类型的value,并指定此键值对应的有效期
r.mset({key:val}) - 设置对象
r.msetnx(mapping) - 键值不存在时才赋值
r.hset(db,key,val) - 设置一个新库,
r.hsetx(db,key,val) - 设置一个新库,
r.hget(db,key) - 搜索对应库内的键
r.hmget(db,keys,*args) - 返回多个键的值
//删
r.delete(key)
r.flushdb() - 清空当前数据库
r.flushall() - 删除所有库
//改
r.rename(okey,nkey) - 重命名
r.move(key,db) - 移动到别的库
//查
r.exists(key) - 判断是否存在
r.type(key) - 判断类型
r.ttl(key) - 获取过期时间, -1 是永不过期
其他编程语言引入
nodejs
// 不用另外安装 types,已经内置
npm install redis