Redis 入门(一:基本数据类型与操作)

1.redis-server启动
2.命令返回值:状态,错误,整数,字符串,多字符串

配置文件

redis-server (文件) 来按照文件配置启动
热更新配置:config set loglevel warning

多数据库

  • 默认16个 select 1 选择
  • 不是独立的

操作

set bar 1`127.0.0.1:6379> keys pattern

(empty list or set)
127.0.0.1:6379> keys
(error) ERR wrong number of arguments for ‘keys’ command
127.0.0.1:6379> keys pattern
(empty list or set)
127.0.0.1:6379> set bar 1
OK
127.0.0.1:6379> keys *

  1. “bar”
  2. “key”
    127.0.0.1:6379> exists bar
    (integer) 1
    127.0.0.1:6379> exists bar2D
    (integer) 0
    127.0.0.1:6379> del key
    (integer) 1
    127.0.0.1:6379> del key
    (integer) 0
    127.0.0.1:6379> del ‘keys “b*”’
    (integer) 0
    127.0.0.1:6379> keys
    (error) ERR wrong number of arguments for ‘keys’ command
    127.0.0.1:6379> keys *
  3. “bar”
    127.0.0.1:6379> redis-cli del ‘redis-cli keys “b*”’
    (error) ERR unknown command redis-cli, with args beginning with: del, redis-cli keys "b*",
    127.0.0.1:6379> type bar
    string
    127.0.0.1:6379> set barr 1
    OK
    127.0.0.1:6379> keys *
  4. “barr”
  5. “bar”
    `

字符串类型

最大512MB
set key value
get key

自增
127.0.0.1:6379> incr bar
(integer) 2
127.0.0.1:6379> incr bar
(integer) 3

只能自增整数

incrby可以指定值
127.0.0.1:6379> incrby bar 2
(integer) 7
127.0.0.1:6379> decrby bar 2
(integer) 5
append key “aabb”
strlen key 获取长度
UTF-8编码

MGST和MSET同时控制多个kv
127.0.0.1:6379> mset name zqm age 22
OK
127.0.0.1:6379> mget name age

  1. “zqm”
  2. “22”
    127.0.0.1:6379> bitcount foo 0 1
    (integer) 6
    选择一种类型位运算给字符串,保存在res中结果127.0.0.1:6379> bitop or res bar barr
    (integer) 5
    bitpos bar 1 第一个为0/1的二进制位的位置
    127.0.0.1:6379> bitpos bar 1 2 3 // 制定字节范围,不存在则是len
    (integer) 10
    127.0.0.1:6379> getbit foo 6
    (integer) 1

散列类型

hset/hget hset更新返回0插入返回1
27.0.0.1:6379> hset car price 500
(integer) 1
127.0.0.1:6379> hset car name bmw
(integer) 1
127.0.0.1:6379> hget car name
“bmw”
127.0.0.1:6379> hget car price
“500”

hMset/hmget 多个字段

hgetall 获得car相关所有字段
127.0.0.1:6379> hgetall car

  1. “price”
  2. “500”
  3. “name”
  4. “bmw”

hexists name field判断存在
127.0.0.1:6379> hexists car model
(integer) 0
127.0.0.1:6379> hexists car name
(integer) 1

hsetnx不存在赋值 原子
127.0.0.1:6379> hexists car name
(integer) 1
127.0.0.1:6379> hsetnx car model vip
(integer) 1
127.0.0.1:6379> hincrby car price 300 //增加
(integer) 800
127.0.0.1:6379> hdel car model //删除
(integer) 1

//获取字段名 , 长度 ,值
127.0.0.1:6379> hlen car
(integer) 2
127.0.0.1:6379> hval car
(error) ERR unknown command hval, with args beginning with: car,
127.0.0.1:6379> hvals car

  1. “800”
  2. “bmw”
    127.0.0.1:6379> hkeys car
  3. “price”
  4. “name”

列表类型

双向链表实现 最多2^31 - 1 个元素

Lpush/Rpush 左右append元素
127.0.0.1:6379> lpush numbers 1
(integer) 1
lpop/rpop左右弹出
127.0.0.1:6379> lpop numbers
“3”
127.0.0.1:6379> rpop numbers
“1”
llen 获得长度
127.0.0.1:6379> llen numbers
(integer) 2

lrange 获取st,ed包括ed的元素 不删除
127.0.0.1:6379> lrange numbers 0 2

  1. “2”
  2. “2”
    支持负索引,-2右边第二个 -1右边第一个

lrem key count value
count > 0 从左边的count个里删除值等于value的
count < 0 从右边
count = 0 整个序列
127.0.0.1:6379> rpush numbers 3 4 5
(integer) 5
127.0.0.1:6379> lrem numbers 1 2
(integer) 1
127.0.0.1:6379> lrange numbers 0 -1

  1. “2”
  2. “3”
  3. “4”
  4. “5”

lindex/lset获得与赋值
127.0.0.1:6379> lindex numbers 1
“3”
127.0.0.1:6379> lset numbers 2 66
OK
127.0.0.1:6379> lindex numbers 2
“66”

Ltrim只保留片段
127.0.0.1:6379> ltrim numbers 0 2
OK
127.0.0.1:6379> lrange numbers 0 -1

  1. “2”
  2. “3”
  3. “66”

Linsert寻找并且插入,寻找失败则插入失败
127.0.0.1:6379> linsert numbers before 66 20
(integer) 4
127.0.0.1:6379> lrange numbers 0 -1

  1. “2”
  2. “3”
  3. “20”
  4. “66”
    127.0.0.1:6379> linsert numbers before 67 20
    (integer) -1
    127.0.0.1:6379> linsert numbers after 69 20
    (integer) -1
    127.0.0.1:6379> lrange numbers 0 -1
  5. “2”
  6. “3”
  7. “20”
  8. “66”

RpopLpush from to 从from右边弹出 加入到to的左边

127.0.0.1:6379> lrange numbers 0 -1

  1. “2”
  2. “3”
  3. “20”
  4. “66”
    127.0.0.1:6379> lpush numbers1 32
    (integer) 1
    127.0.0.1:6379> rpoplpush numbers numbers1
    “66”
    127.0.0.1:6379> lrange numbers 0 -1
  5. “2”
  6. “3”
  7. “20”
    127.0.0.1:6379> lrange numbers1 0 -1
  8. “66”
  9. “32”

集合类型

2^32 - 1个 hash实现o1
无则创建key
127.0.0.1:6379> sadd letter a //添加
(integer) 1
127.0.0.1:6379> sadd letter b c d//添加
(integer) 3
127.0.0.1:6379> srem letter c//remove
(integer) 1
127.0.0.1:6379> smembers letter//查看所有

  1. “a”
  2. “b”
  3. “d”
    127.0.0.1:6379> sismember letter d//判断是不是member
    (integer) 1

集合运算
sdiff A B C 集合的A-B-C
127.0.0.1:6379> sadd set1 a b c
(integer) 3
127.0.0.1:6379> sadd set2 b c d
(integer) 3
127.0.0.1:6379> sadd set3 d e f
(integer) 3
127.0.0.1:6379> sdiff set1 set2 set3

  1. “a”

sinsert求交集
127.0.0.1:6379> sinter set1 set2 set3
(empty list or set)

sunion求并集
127.0.0.1:6379> sunion set1 set2 set3

  1. “d”
  2. “e”
  3. “a”
  4. “f”
  5. “c”
  6. “b”

scard获得数量 / sdiffstore存下集合运算结果
127.0.0.1:6379> scard set1
(integer) 3
127.0.0.1:6379> sdiffstore set4 set1 set2
(integer) 1

127.0.0.1:6379> srandmember set1 -2 // 负数代表取出的元素可能相同,

  1. “a”
  2. “a”
    127.0.0.1:6379> srandmember set1 2
  3. “b”
  4. “c”

spop随机选一个弹出
127.0.0.1:6379> spop set1
“b”

有序集合类型

Zadd key score member//存在则变为修改
127.0.0.1:6379> zadd sort 1 a
(integer) 1
127.0.0.1:6379> zadd sort 2 a
(integer) 0
127.0.0.1:6379> zscore sort a // 查询sort的a
“2”

zrange按照score大小返回区间内元素log(n+m)元素个数,查询区间长度 反向位zrevrange
127.0.0.1:6379> zrange sort 0 -1 withscores

  1. “a”
  2. “2”
  3. “b”
  4. “3”
  5. “s”
  6. “32”
    127.0.0.1:6379> zrange sort 0 -1 withscores
  7. “a”
  8. “2”
  9. “b”
  10. “3”
  11. “s”
  12. “32”

zrangebyscore key min max [withscores] [limit offset count ] //获得指定分数范围的元素
127.0.0.1:6379> zrangebyscore sort (2 5 //加括号代表开区间

  1. “b”

-inf 和 +inf代表无穷

limit offset count 获取元素集合基础上,起点偏移offset个,之后取得前count个
127.0.0.1:6379> zrangebyscore sort (2 +inf limit 1 1

  1. “s”

增加某个元素的score
127.0.0.1:6379> zincrby sort 3 a
“5”
127.0.0.1:6379> zcard sort // 获得个数
(integer) 3
127.0.0.1:6379> zcount sort 1 10 // 指定分数范围内个数
(integer) 2
127.0.0.1:6379> zrem sort a // 按照分数移除
(integer) 1
127.0.0.1:6379> zremrangebyrank sort 0 0 // 移除排名在st,ed的元素
(integer) 1
127.0.0.1:6379> zremrangebyscore sort 0 0//移除分数在st,ed的元素
(integer) 0

zrank key member 获得排名 zrevrange反向排名 , 即第几小,第几大

计算有序集合的交集
zinterstore result keynums key[keys…] [weight …] [aggregate sum|min|max]

sum:求交集时多个集合中元素取sum
min:…取min
Max:取max

通过weight设置权重 如weight 1 0.1

zunionstore的用法类似
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值