美文网首页
Redis字符串类型

Redis字符串类型

作者: lc_666 | 来源:发表于2020-04-22 17:33 被阅读0次
  • 以key-value来进行存储的

使用场景

  • 页面数据缓存
  • 数字计算与统计
  • session共享

使用方法

通过redis-cli

  • 添加键值
127.0.0.1:6379> set k1 val1
  • 获取键值
127.0.0.1:6379> get k1
"val1"
  • 给元素追加
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> append k1 append
(integer) 5
127.0.0.1:6379> get k1
"v1append"
  • 查询字符串长度
127.0.0.1:6379> get name
"lc666"
127.0.0.1:6379> strlen name
(integer) 5
127.0.0.1:6379>
  • 多键值对添加
127.0.0.1:6379> mset age 12 sex male
OK
  • 多键值查询
127.0.0.1:6379> mget age sex
1) "12"
2) "male"
  • 赋值字符串,并设置过期时间(单位/秒)
127.0.0.1:6379> setex name 5 lc
OK
127.0.0.1:6379> get name
"lc"
127.0.0.1:6379> get name
(nil)

  • 赋值字符串,并设置过期时间(单位/毫秒)
127.0.0.1:6379> psetex name 5000 lc
OK
127.0.0.1:6379> get name
"lc"
127.0.0.1:6379> get name
"lc"
127.0.0.1:6379> get name
(nil)
  • 截取字符串
127.0.0.1:6379> get word
"hello world"
127.0.0.1:6379> getrange word 0 3
"hell"
  • 设置字符串新值返回旧值
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> getset db mysql
"redis"
127.0.0.1:6379> get db
"mysql"
  • 赋值(创建)键值对当 key 不存在时,如果存在不会修改
127.0.0.1:6379> get name
"lc"
127.0.0.1:6379> setnx name look
(integer) 0
127.0.0.1:6379> get name
"lc"
  • 设置一个或多个键值,当所有键值都不存在时,msetnx为原子操作,一个不成功都不成功
127.0.0.1:6379> msetnx k5 v5 k6 v6
(integer) 1
127.0.0.1:6379> mget k5 k6
1) "v5"
2) "v6"
  • 截取字符串并赋值,截取的字符串不存在会按照空字符串处理
127.0.0.1:6379> get word
"hello world"
127.0.0.1:6379> setrange word 6 redis
(integer) 11
127.0.0.1:6379> get word
"hello redis"

通过代码

public class RedisTest {
    
    public static void main(String[] args) {
        Jedis jedis = new Jedis("localhost", 6379);
        jedis.set("name", "lc");
        String name = jedis.get("name");
        System.out.println(name);
    }
}
import redis
    
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set('name', 'lc')
print(r.get('name'))

查看数据类型

  • 我们可以使用 object encoding key 命令来查看对象(键值对)存储的数据类型,当我们使用此命令来查询

    • int:整型
    • embstr:字符串
    • raw:字符串超过44 字节时
  • Redis 中,如果 SDS 的存储值大于 64 字节时,Redis 的内存分配器会认为此对象为大字符串,并使用 raw 类型来存储,当数据小于 64 字节时(字符串类型),会使用 embstr 类型存储。既然内存分配器的判断标准是 64 字节,

  • 这是因为 Redis 在存储对象时,会创建此对象的关联信息,redisObject 对象头和 SDS 自身属性信息,这些信息都会占用一定的存储空间,因此长度判断标准就从 64 字节变成了 44 字节。

相关文章

  • Redis--数据类型命令(一)

    Redis字符串(string) Redis字符串数据类型的相关命令用于管理redis字符串值 语法: redis...

  • Redis对象类型和底层数据结构

    Redis对象类型(类型常量:对象名称) REDIS_STRING: 字符串对象 REDIS_LIST: ...

  • redis 基础数据类型

    redis 基础数据类型 Sting类型 : Redis 的字符串是动态字符串,是可以修改的字符串,内部结构实现上...

  • redis学习系列(二)

    redis简单操作之string类型 Redis 数据类型 Redis支持五种数据类型:string(字符串),h...

  • 一、Redis数据类型

    Redis数据类型 1. 字符串 Redis中字符串是二进制安全的,这意味着一个Redis字符串可以包含任意类型的...

  • Redis的数据类型

    Redis的数据类型 Redis支持的数据类型有5种: 字符串String 字符串列表list 哈希hash 字符...

  • Redis的数据类型

    Redis的数据类型 Redis支持的数据类型一般有6种: 字符串String 字符串链表linked-list ...

  • SpringBoot-Redis 入门

    SpringBoot-Redis 入门 Redis 的数据类型 String 字符串 string 是 redis...

  • 面试遇到问题(五)

    Redis 参考 菜鸟教程redis常见面试题 redis 支持哪些数据类型 redis支持五种数据类型:字符串(...

  • Redis(01)-数据结构

    Redis 支持的五种存储数据的类型 字符串(String)类型 字符串是Redis支持的最简单的数据结构,内部就...

网友评论

      本文标题:Redis字符串类型

      本文链接:https://www.haomeiwen.com/subject/iwjwihtx.html