Redis数据库基础
Redis数据库时一个非关系型数据库,是一个缓存类数据库,数据存放在内存中。
1. 5大数据类型
string # 字符类型
list # 列表类型
hash # 哈希类型
set # 无序集合
zset # 有序集合
2. 常用命令
redis-cli # linux中进入到redis
exit # 退出
select+数字(0-15) # redis中有16个库 对应数字 切换
service redis start/stop/restart # 操作服务端开启/停止/重启
# redis命令中都是以空格隔开,同时结尾没有符号
ps aux|grep redis # 没有进入到redis中获取端口号
3. 各类型数据操作命令
string 字符类型
keys * # 查看所有的键
set key values # 创建数据(键 值)
get key # 查看键为key的值
mset key1 value1 key2 value2..... # 创建多个键值对值
mget key1 key2 ..... # 查看多个键对应的值
append key value # 在键为key的value后面追加值
del key # 删除键为key的数据
incr key # 键为key的内容+1
decr key # 键为key的内容-1
incrby key 指定值 # 键为key的内容+指定值
decrby key 指定值 # 键为key的内容-指定值
rename key 名字 # 更改键名
expire key 存活时间 # 设置存活时间,当时间没有了后这条数据就没了
ttl key # 查询键为key的存活时间(其中-1为永久,-2为0)
set key value ex 存活时间 # 为已有的键值对添加存活时间
exists key # 查看键是否存在,存在返回1,不存在返回0
persist key # 删除键为key的存活时间,变为永久
flushall # 清空所有数据库里面的数据
flushdb # 只清空当前数据库里面的数据
list 列表类型
push 列表名 # 创建 列表
lpush 列表名 values # 左添加,例:1234 == 返回 4321
rpush 列表名 values # 右添加,例:1234 == 返回 1234
lrange 列表名 起始值(索引值) 结束值(索引值) # 查询列表中 索引值为 起始和结束间的数据, 0 -1 全查取
lset key index value # 修改数据,指定下标
rpop 列表名 # 从右到左每次删除1个值
lpop 列表名 # 从左到右每次删除1个值
lrem 列表名 +num +指定值 # num = 个数,删除这么多个指定值,num = 1,从左往右找然后删除每次1个,num = -1,从右往左找,然后删除每次1个,num = 0,满足条件的全部删除
hash 哈希类型
hset 外键 1 (内键1 值) # 穿件嵌套字典
hget 外键1 内键1 # 查看外键1下面内键为1的值
hmset 外键 (内键 值) (内键 值)... # 创建多个内键值对
hmget 外键 内键1 内键2.... # 查看外键下面多个内键的值
hvals 外键名 # 查看该外键名下所有的内键对应值
hkeys 外键名 # 查看该外键名下所有的内键对应名
hgetall 外键名 # 查看该外键下面的所有内键值对
hlen 外键名 # 查看该外键下面有多少数量键值对
hdel 外键名 内键名1 内键名2 .... # 删除该外键名下面 内键名为1 2.... 的数据
set 无序集合
sadd 集合名 数据 # 添加数据
smembers 集合名 # 查看该集合下面的数据
spop 集合名 # 随机删除该集合下面的1条数据
srem 集合名 指定值 # 指定删除该集合下面的数据(每次1条?)
scard 集合名 # 统计该集合中有多少个数据
zset 有序集合
zadd 集合名 数据(1 a 2 b 3 c) # 1 1 对应的数据(分数和名字),创建(数字为分数,字母为人员)
zrange 集合名 范围(起始索引 结束索引) # 以人员为基准查看人员
zrangebyscore 集合名 范围(起始索引 结束索引) # 以分数基准查看人员
zrem 集合名 人员名 # 删除指定人员名的数据,以人员
zremrangebyrank 集合名 范围(起始索引 结束索引) # 删除指定索引范围的数据,以分数
zremrangebyscore 集合名 范围(最小值 最大值) # 删除指定范围内的数据,以分数
4. pycharm链接Redis数据库
pip install redis # 安装包
import redis # 导入模块
re = redis.StrictRedis(
host = ""连接地址"",
port = ""redis端口号"",
db = ""选中链接数据库"",
charset = ""编码格式""
) # pycharm链接redis。推荐使用 6379
res.(交互下的命令和方法) # 操作
re.ttl(key) # 永久和无该key为None(交互命令下为-1和null)
decode_response = True # 在程序操作的数据为bytes数据,写入的数据为str类型,输出的数据为bytes类型,因此要获得必须要进过解码decode()