Redis 常用操作命令

Redis

ubuntu下启动服务器

ps aux | grep redis  // 查看当前进程是否开启redis


sudo service redis start  //启动服务
sudo service redis stop  // 关闭服务
sudo service redis restart  // 重新启动

redis-cli  // 进入客户端

数据类型

  • string
  • hash
  • list
  • set
  • zset(有序集合)

sring(可以接收任何数据类型)

string 是 redis 最基本的类型。一个key对应一个value。

string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。

string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。

string操作
  • 设置:SET key value,(没有则设置,有则更新)
  • 获取:GET key
127.0.0.1:6379> SET name xiaoming  // 设置{'name':'xiaomibg'}
OK
127.0.0.1:6379> GET name 
"xiaoming"
127.0.0.1:6379> SET name xiaohong
OK
127.0.0.1:6379> GET name
"xiaohong"
  • 设置多个key-value:MSET key1 value1 key2 value2
  • 获取多个value:MGET key1 [key2]
127.0.0.1:6379> MSET name1 xiaoming name2 lihua
OK
127.0.0.1:6379> GET name1
"xiaoming"

127.0.0.1:6379> MGET name1 name2
1) "xiaoming"
2) "lihua"
  • 追加:APPEND key value
127.0.0.1:6379> GET name1
"xiaoming"
127.0.0.1:6379> APPEND name1 xiaoming
(integer) 16
127.0.0.1:6379> GET name1
"xiaomingxiaoming"

  • 设置过期时间:SETEX key seconds value(过期返回nil)
127.0.0.1:6379> SETEX age 5 18
OK
127.0.0.1:6379> GET age
"18"
127.0.0.1:6379> GET age
(nil)

键命令

  • 查看所有的KEY:KEYS *
  • 查看以n开头的KEY:KEYS N*
  • 查看KEY[KEY2]是否存在:``EXISTS key [key…]
  • 查看key的类型:type key
  • 删除key:del key [key...]
  • 设置过期时间:EXPIRE key seconds
  • 查看key的过期时间:TTL key
127.0.0.1:6379> KEYS *
1) "name2"
2) "name"
127.0.0.1:6379> KEYS n*
1) "name2"
2) "name"
127.0.0.1:6379> EXISTS name 
(integer) 1
127.0.0.1:6379> EXISTS name name2
(integer) 2
127.0.0.1:6379> EXISTS name name1 name2 
(integer) 2
127.0.0.1:6379> type name
string
127.0.0.1:6379> del name2
(integer) 1
127.0.0.1:6379> EXPIRE name 1000
(integer) 1
127.0.0.1:6379> TTL name
(integer) 995
127.0.0.1:6379> 

hash

Redis hash 是一个键值(key=>value)对集合。

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象

hash操作命令
  • 设置单个属性:HSET key field value
    (相当于key:{field:value} )
  • 设置多个属性:HMSET key field value [field value ...]
127.0.0.1:6379> HSET user name xiaoming
(integer) 1
127.0.0.1:6379> HMSET user2 name xiaoming age 18
OK
  • 获取指定键的所有属性:HKEYS key
  • 获取key的一个field的value:HGET key field
  • 获取key的多个value:HMGET key field [filed...]
  • 获取key的所有value:HVALS key
127.0.0.1:6379> HKEYS user2
1) "name"
2) "age"
127.0.0.1:6379> HGET user2 name
"xiaoming"
127.0.0.1:6379> 
127.0.0.1:6379> HMGET user2 name age
1) "xiaoming"
2) "18"
127.0.0.1:6379> HVALS user2
1) "xiaoming"
2) "18"
  • 删除整个hash键和直用del
  • 删除fields对应的valuehdel key field [field...]
127.0.0.1:6379> HMSET user3 name lihua age 18 height 188 weight 60
OK
127.0.0.1:6379> HVALS user3
1) "lihua"
2) "18"
3) "188"
4) "60"
127.0.0.1:6379> HDEL user3 height weight
(integer) 2
127.0.0.1:6379> HVALS user3
1) "lihua"
2) "18"

list

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

list操作命令
  • 左侧插入:LPUSH key value [value ...](key存在则插入,不存在则创建)
  • 右侧插入:RPUSH key value [value ...]
  • 查询:LRANGE key start stop(相当于python里面的 list[start:stop+1])
127.0.0.1:6379> LPUSH list1 a b c
(integer) 3
127.0.0.1:6379> keys *
1) "list1"
2) "user3"
3) "name"
4) "user2"
127.0.0.1:6379> type list1
list
127.0.0.1:6379> LRANGE list1 0 2  // 在左侧依次插入a b c
1) "c"
2) "b"
3) "a"

127.0.0.1:6379> LPUSH list1 e
(integer) 4
127.0.0.1:6379> LRANGE list1 0 -1
1) "e"
2) "c"
3) "b"
4) "a"

127.0.0.1:6379> RPUSH list1 0
(integer) 5
127.0.0.1:6379> LRANGE list1 0 -1
1) "e"
2) "c"
3) "b"
4) "a"
5) "0"

  • 在某一元素前面/后面插入:LINSERT key BEFORE|AFTER pivot value
127.0.0.1:6379> LINSERT list1 BEFORE a A
(integer) 6
127.0.0.1:6379> LRANGE list1 0 -1
1) "e"
2) "c"
3) "b"
4) "A"
5) "a"
6) "0"

  • 设置指定索引对应的值LSET key index value
127.0.0.1:6379> LRANGE list1 0 -1
1) "e"
2) "c"
3) "CC"
4) "A"
5) "a"
6) "0"
127.0.0.1:6379> LSET list1 2 d
OK
127.0.0.1:6379> LRANGE list1 0 -1
1) "e"
2) "c"
3) "d"
4) "A"
5) "a"
6) "0"
  • 删除指定元素LREM key count value
    • count > 0 从头到尾删除 count 个 value
    • count < 0 从尾到头删除 count 个 value
    • count = 0 删除所有的value

set

  • 无序集合
  • 元素为string类型
  • 元素唯一,可以到达去重的目标
  • 对于集合没有修改的操作
set操作命令

如果插入重复的member,则只会插入一个

  • 增加:SADD key member [member ...]
  • 获取:SMEMBERS key
  • 删除:SREM key member [member ...]
127.0.0.1:6379> SADD set1 xiaoming lihua zhaogang
(integer) 3
127.0.0.1:6379> SMEMBERS set1
1) "zhaogang"
2) "lihua"
3) "xiaoming"
127.0.0.1:6379> SREM set1 xiaoming lihua
(integer) 2
127.0.0.1:6379> SMEMBERS set1
1) "zhaogang"

zset(有序集合)

  • sorted set 有序集合
  • 元素为string类型
  • 元素唯一性
  • 每个元素都会关联一个double类型的score,表示权重,默认按权重从小到大排序
  • 没有修改操作
zset操作命令
  • 增加:ZADD key score member [score member]
  • 获取
    • 按照索引获取(已经按照权重排好序了):ZRANGE key start stop
    • 按照权重获取:ZRANGEBYSCORE key min max
    • 获取权重ZSCORE key member
127.0.0.1:6379> ZADD zset1 2 two 1 one 5 five 4 four 3 three
(integer) 5
127.0.0.1:6379> ZRANGE zset1 0 -1
1) "one"
2) "two"
3) "three"
4) "four"
5) "five"

127.0.0.1:6379> ZRANGE zset1 0 -1
1) "one"
2) "two"
3) "three"
4) "four"
5) "five"
127.0.0.1:6379> ZRANGEBYSCORE zset1 3 6
1) "three"
2) "four"
3) "five"
127.0.0.1:6379> ZSCORE zset1 four
"4"
  • 删除
    • 删除指定的元素:ZREM key member [member ...]
    • 删除权重在指定范围的元素:ZREMRANGEBYSCORE key min max
127.0.0.1:6379> ZREM zset1 three
(integer) 1
127.0.0.1:6379> ZRANGE zset1 0 -1
1) "one"
2) "two"
3) "four"
4) "five"
127.0.0.1:6379> ZREMRANGEBYSCORE zset1 3 5
(integer) 2
127.0.0.1:6379> ZRANGE zset1 0 -1
1) "one"
2) "two"

客户端常用命令

127.0.0.1:6379> ping  // 测试是否链接成功
PONG

// SELECT n  切换到第n个数据库 (1-16)
127.0.0.1:6379> SELECT 5  // 切换数据库 
OK
127.0.0.1:6379[5]> 
keys *
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值