redis day2: redis的五种数据类型 py-redis

string类型及操作

键值对:name = zhangsan,password=1234,age=18

set append 建删改

  • set name zhangsan # 查看:get name
  • setnx name zhangsan # not exist如果不存在name这个key才添加
  • setex name 10 zhangsan # 10秒过期
  • setrange name 5 li # 从索引号5开始用li代替,zhangsi
  • mset name zhangsan password 1234 #设置多个kv
  • msetnx name zhangsan password 1234 #如果不存在才添加多个kv
  • append name feng # zhangsanfeng ,添加在v值后面
  • del name # 删除name

get strlen 获取kv

  • get name
  • getset name zhangsan_new # 先获取再修改kv,如果key不存在返回0
  • getrange
    • getrange name 0 6# 获取key的0-6索引值部分的内容
    • getrange name -5 -1 # 获取key的-5~-1的索引值部分的内容,即倒数5个字符 即:n_new
  • mget name password sex # 返回key对应的value,无该key返回nil
  • keys * #返回所有 name
  • strlen name # 返回value值的长度

加减数值

  • incr age # age+1
  • incrby age 18 # age+18
  • incrbyfloat age 18.5 # age+18.5
  • incrbyfloat age -18.5 # age-18.5
  • decr age #age -1
  • decrby age 18 #相当于incrby age -18

hash类型及操作

Redis hash 是一个string 类型的field 和value 的映射表.hash 特别适合用于存储对象。相较于将对象的每个字段存成单个string 类型,将一个对象存储在hash 类型中会占用更少的内存,并且可以更方便的存取整个对象。hash表是key- field-value结构:人是key,name是field,value是郭靖,age是field,value是18
例如: 某个人,name=郭靖,age=20,sex=1,love=huangrong

hset hsetnx hmset hdel设置hash
  • hset beixia name guojing age 20 # key是beixia,field是name和age,value分别是guojing和18
  • hsetnx beixia name guojing2 # 设置key-field和value,如果已有则返回0
  • hmsex beixia name guojing age 20 # 设置多个field,与hset相同
  • hdel beixia name # 删除name
hget hmget 获取value
  • hget beixia name
  • hmget beixia name age love
  • hkeys beixia #返回beixia所有field
  • hvals beixia # 返回beixia所有value
  • =hgetall beixia= #返回最全beixia的所有field和value
hincrby 增减值
  • hincrby beixia age 1 # age+1
  • hincrby beixia age -1 # age-1
  • hincrbyfloat beixia age 0.5 # age+0.5
  • hincrbyfloat beixia age -0.5 # age-0.5
  • hexists beixia son # 不存在son这个field,返回0
  • hlen beixia #返回field的数量

list类型及操作

list 是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中key理
解为链表的名字
Redis 的list 类型其实就是一个每个子元素都是string 类型的双向链表。链表的最大长度是(2
的32 次方)。我们可以通过push,pop 操作从链表的头部或者尾部添加删除元素。这使得list
既可以用作栈,也可以用作队列。
key(列表名 ):shediao
value :ouyangfeng guojing huangyaoshi yideng zhoubotong hongqigong

插入 lpush rpush linsert 改lset 删 lrem

  • lpush shediao ouyangfeng hongqigong # 在列表开头插入value ouyangfeng和hongqigong
  • lrange shediao 0 -1 # =查找列表所有value= -1表示最后一位
  • rpush shediao wangchongyang #在列表结尾插入一个value wangchongyang
  • linsert shediao after wangchongyang zhoubotong #在列表的wangchongyang后插入zhoubotong
  • lset shediao 0 huangrong # 将列表的索引值为0的value改成huangrong
  • lrem shediao 2 zhubotong #将列表的索引值为zhubotong的删除掉最多两个,从左向右删
  • lrem shediao -2 zhubotong #将列表的索引值为zhubotong的删除掉最多两个,从右向左删/
  • lrem shediao 0 zhubotong #将列表的索引值为zhubotong的全部删除
  • ltrim shediao 1 2 # 删除不在索引号1~2的其他value
  • lpop shediao # 删除list头部第一个value
  • rpop shediao # 删除list头部最后一个value
  • rpoplpush shediao shendiao #将shediao最后一个Value删除并移入shendiao第一个,返回被删除的元素

lindex lrange

  • lindex shediao 4 # 返回索引值4的value
  • lrange shediao 0 -1 #返回所有value
  • llen shediao # 返回shediao的value个数

set类型及操作

set 是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合
求交并差等操作,=操作中key 理解为集合的名字=。
Redis 的set 是string 类型的无序集合。set 元素最大可以包含(2 的32 次方)个元素。
key=yitian (倚天) value jueyuan zhangsanfeng zhangcuishan zhangwuji
key =shendiao(神雕) value jueyuan(觉远)

增sadd

  • sadd yitian jueyuan zhangsanfeng zhangcuishan zhangwuji #在倚天中增加4个value
  • srem yitian zhangcuisan #删除zhangcuishan
  • spop yitan # 随机返回一个值并删除
  • sdiff yitian shendiao # yitian -shendiao
  • sdiff shendiao yitian # shendiao -yitian
  • sdiffstore newset shendiao yitian # 计算shendiao-yitian的结果并放在newset中
  • sinter shendiao yitian #计算shendiao*yitian
  • sinterstore newset shendiao yitian #计算shendiao*yitian的结果并放在newset中
  • sunion shendiao yitian #计算shendiao+yitian
  • sunionstore newset shendiao yitian #计算shendiao+yitian的结果并放在newset中
  • smove yitian shendiao jueyuan # 从yitian中移动jueyuan到shendiao

smembers 列出所有元素

  • smembers shendiao
  • scard shendiao #返回 shendiao的元素个数
  • sismember shendiao jueyuan #如果jueyuan是元素,返回1,否则返回0
  • srandmember shendiao 2 #随机返回2个元素

sorted set 类型与操作(zset)

sorted set 是set 的一个升级版本,它在set 的基础上增加了一个顺序属性,这一属性在添加
修改元素的时候可以指定,每次指定后,zset 会自动重新按新的值调整顺序。可以理解为有
两列的mysql 表,一列存value,一列存顺序。操作中key 理解为zset 的名字。

和set 一样sorted set 也是string 类型元素的集合,不同的是每个元素都会关联一个double
类型的score。sorted set 的实现是skip list 和hash table 的混合体。

key:ludingji 鹿鼎记
sort value:1 shuanger,2 jianning 3 mujianping

增删改

  • zadd ludingji 1 shuanger 2 jianning 3 mujianping
  • zadd ludingji 1 shuanger 2 shuanger # 多次设置的元素以最后一次为准 shuanger 2
  • zrem ludingji 1 shuanger # 删除shuanger
  • zremrangebyrank ludingji 0 1 #按rank由小到大排列,删除0-1的元素
  • zremrangebyscore ludingji 0 1 # 按score由小到大排列,删除0-1的元素
  • zincrby ludingji 1 jianning # jiangning的序号+1


zrange ludingji 0 -1 withscores #升序输出 shuanger 1 jianning 2 mujianping 3 (withscores会列出序号)
zrevrange ludingji 0 -1 withscores # 降序输出
zrangebyscores ludingji 0 1 # 按score范围输出元素
zrank ludingji shuanger # 返回shuanger的下标
zcount ludingji 0 2 #返回区间的元素数量
zcard ludingji # 返回元素数量
zscore ludingji shuanger #返回元素的score

通用命令

  • keys * # 查看所有key
  • exists shendiao # key是否存在
  • del shendioa #删除key
  • expire shendiao 10 # 设置shendiao10秒过期
  • move shendiao 1 # 把shendiao key移动到数据库1
  • select 1 # 选择数据库1
  • persist shendiao # 把shendiao key的过期时间设为永久
  • randomkey # 随机返回一个key
  • rename shendiao shendiao2 # 改名key
  • type key #key类型

服务器相关命令

  • ping
  • echo hello # 打印内容
  • select 1 #数据库1
  • quit #退出连接
  • dbsize #当前数据库的key数量
  • info # 服务器信息统计
  • config get * #获取服务器配置信息
  • flushall #删除所有数据库的所有key
  • flushdb #删除当前数据库的所有key
  • auth 1234 #用口令1234登录-
  • config set requirepass 1234 #设置密码为1234

py-redis

使用python操作redis

  • 安装 pip install redis
  • 使用
import redis  #导入
r = redis.StrictRedis(host='120.24.*.*', port=6379, db=0, password='*')  #返回byte类型
r = redis.StrictRedis(host='120.24.*', port=6379, db=0, password='*',decode_responses="True") #返回文本
r.set('name-redis', 'hongbagong',ex=5)  # 使用redis对应的命令管理key
print(r.get('name-redis')) #获取keuy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值