【Redis】Redis基础操作 & Pipeline

Redis

Redis在大量数据读取存储时,要注意读写分离,写入使用主库,读取使用从库,缓解主库压力

Redis连接

  • python
import redis
rc = redis.Redis(host=HOST, port=POST)
  • shell
# 使用--raw时,中文输出不会乱码
redis-cli --raw -h HOST -p POST
  • scala
import redis.clients.jedis.Jedis
redisClient = new Jedis(HOST, POST, timeout)

Redis基础操作

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)

命令操作
DEL key删除key
EXISTS key判断key是否存在
EXISTS key判断key是否存在
EXPIRE key seconds给key设置过期时间,以秒为单位
TTL key返回key过期时间
  • 字符串(String)
命令操作
SET key value查看长度
GET key 0 -1查看内容
  • 哈希(Hash)
命令操作
HGETALL key获取key的所有内容,是一个字典
HGET key field获取key中某个字段的内容,是一个值
HMSET key map批量存储key的内容
HSET key field存储key中某个字段的内容
  • 队列(List)
命令操作
LLEN key查看长度
LRANGE key 0 -1查看所有内容
LRANGE key 0 -1查看所有内容
LPOP key移出队列第一个元素
LPUSH key将元素插入队列头部
RPOP key移出队列最后一个元素
RPUSH key将元素插入队列尾部
  • 集合(Set)
命令操作
SADD key member添加元素
SREM key member删除元素
smembers key查看所有元素

Redis Pipeline

当数据量很大的时候,取redis不断链接需要耗费大量时间,因此可以使用pipeline批量进行数据操作,减少链接及通信时间

  • python
# python demo
def pythonPipelineDemo:
    pipe = rc.pipeline()
    for key in keys:
        pipe.hgetall(mid)
    result = pipe.execute()
    #结果为有序列表
    for i in range(len(keys)):
        print keys[i], result[i]
  • scala
// scala demo
import redis.clients.jedis.Jedis
import scala.collection.JavaConverters._
def scalaPipelineDemo() = {
    val pipe = redis.pipelined()
    keys.foreach(key => {
      pipe.hgetAll(key)
    })
    // pipe.sync() // 若不需要返回结果可使用
    val result = pipe.syncAndReturnAll().asScala
    result.foreach(res => {
      println(res)
    })
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值