首页 > 数据库 >redis 基本数据类型

redis 基本数据类型

时间:2023-06-08 14:23:32浏览次数:44  
标签:基本 127.0 0.1 数据类型 redis 6379 books integer

  所有数据都以唯一 key 字符串作为名称,而 value 只是数据类型的差异。所以,针对 key 的命令都是通用的。 方便演示,采用 docker 镜像,可以选择 redis:latest 镜像,这里我选择了带布隆过虑器的 redis 镜像。  

docker run -p 6379:6379 --name redis -d redislabs/rebloom:latest
docker exec -it redis

 

查看一下启动服务的命令帮助
redis-server --help
Usage: ./redis-server [/path/to/redis.conf] [options] [-]
       ./redis-server - (read config from stdin)
       ./redis-server -v or --version
       ./redis-server -h or --help
       ./redis-server --test-memory <megabytes>
       ./redis-server --check-system
Examples:
       ./redis-server
       ./redis-server /etc/redis/6379.conf
       echo 'maxmemory 128mb' | ./redis-server -
       ./redis-server --port 7777 --replicaof 127.0.0.1 8888
       ./redis-server /etc/myredis.conf --loglevel verbose -
Sentinel mode:
       ./redis-server /etc/sentinel.conf --sentinel

 

由于 docker 容器运行时,自动启用了 redis 服务,所以下面,我们直接连接即可:  
redis-cli
127.0.0.1:6379>
# 查看帮助
help
redis-cli 6.2.5
To get help about Redis commands type:
      "help @<group>" to get a list of commands in <group>
      "help <command>" for help on <command>
      "help <tab>" to get a list of possible help topics
      "quit" to exit
To set redis-cli preferences:
      ":set hints" enable online hints
      ":set nohints" disable online hints
Set your preferences in ~/.redisclirc

# 查看string 类型相关命令
help @string

# 查看 set 命令帮助
help set

# tab 自动补全命令
help se<tab>

# 启用在线帮助
:set hints

# 关闭在线帮助
:set nohints

 

key 操作命令:
del 删除
dump 序列化
exists 是否存在
expire 过期时长
expireat 过期时间点(timestamp)
keys 正则表达式搜索
migrate 迁移
move 移库,不会覆盖
object 从内部察看给定 key 的 Redis 对象, 它通常用在除错(debugging)或者了解为了节省空间而对 key 使用特殊编码的情况。
object refcount  返回给定 key 引用所储存的值的次数。此命令主要用于除错。
object encoding  返回给定 key 锁储存的值所使用的内部表示(representation)。
object idletime  返回给定 key 自储存以来的空闲时间(idle, 没有被读取也没有被写入),以秒为单位。
persist 清除过期时间
pexpire 毫秒级的过期时长
pexpireat 毫秒级的过期时间点
pttl 毫秒级的剩余生存时间
randomkey 随机返回一个 key
rename 重命名,新名覆盖
renamenx 安全的重命名(不覆盖)
restore 反序列化给定的序列化值
scan 迭代当前数据库中的 key
sort 排序
touch 修改指定 key 最后访问时间
ttl 查看剩余存活时长
type 查看类型
unlink 异步删除
wait 阻塞当前客户端,直到所有以前的写命令都成功的传输和指定的slaves确认
server 命令:
config get 查看当前配置项,config get * 可查看全部配置项
config set 设置配置项值

 

5种基础数据类型:string, list, hash, set, zset 复合类数据结构,当最后一个元素被删除,数据结构被自动删除,回收内存。 设置过期时间,是以 key 为单位的,即:复合类整体过期,而不是其中的某个元素过期。

 

string 字符串 最简单的数据结构,它是一个字符数组。可以动态扩容,采用预留冗余空间的方式来减少内存的频繁分配。字符串小于 1M 时,采用加倍扩容,超过时,最多扩容 1M。 注意,用 set 命令重新设置 key 时,会清除设置的 ttl 时长。
127.0.0.1:6379> set name codehole
OK
127.0.0.1:6379> get name
"codehole"
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> mset name1 boy name2 girl name3 tom
OK
127.0.0.1:6379> mget name1 name2 name3 name4
1) "boy"
2) "girl"
3) "tom"
4) (nil)
127.0.0.1:6379> set name codehole
OK
127.0.0.1:6379> expire name 5
(integer) 1
127.0.0.1:6379> ttl name
(integer) 3
127.0.0.1:6379> setex name 5 codehole
OK
127.0.0.1:6379> setex name 5 codehole
OK
127.0.0.1:6379> ttl name
(integer) 4
127.0.0.1:6379> setnx name holycoder
(integer) 1
127.0.0.1:6379> set age 10
OK
127.0.0.1:6379> incr age
(integer) 11
127.0.0.1:6379> incrby age 10
(integer) 21
127.0.0.1:6379> incrby age -5
(integer) 16
list 列表 它是链表,插入和删除非常快,时间复杂度O(1),但索引定位很慢时间复杂度O(n),列表每个元素都使用双向指针串连,支持左右双向遍历。 左进右出或右进左出为队列,右进右出或左进左出为栈。
127.0.0.1:6379> rpush books python java golang
(integer) 3
127.0.0.1:6379> llen books
(integer) 3
127.0.0.1:6379> lpop books
"python"
127.0.0.1:6379> lpop books
"java"
127.0.0.1:6379> rpop books
"golang"
127.0.0.1:6379> llen books
(integer) 0
127.0.0.1:6379> lpush books java python golang
(integer) 3
127.0.0.1:6379> lindex books 1
"python"
127.0.0.1:6379> lrange books 0 -1
1) "golang"
2) "python"
3) "java"
127.0.0.1:6379> ltrim books 1 -1
OK
127.0.0.1:6379> lrange books 0 -1
1) "python"
2) "java"
hash 字典 它是无序字典,内部存储很多键值对。实现结构是数组 + 链表,通过计算 field 的 hash 值,找到数组中的索引位置,存放为链表结构。碰撞的元素追加到链表尾。 虽然 hash 比字符串占用更多存储空间,但 hash 可以获取单个字段值,而 json 字符串只能整个获取。  
127.0.0.1:6379> hset books java "think in java"
(integer) 1
127.0.0.1:6379> hset books python "python cookbook"
(integer) 1
127.0.0.1:6379> hgetall books
1) "java"
2) "think in java"
3) "python"
4) "python cookbook"
127.0.0.1:6379> hlen books
(integer) 2
127.0.0.1:6379> hdel books python
(integer) 1
127.0.0.1:6379> hget books python
(nil)
127.0.0.1:6379> hget books java
"think in java"
127.0.0.1:6379> hmset books python "cook python book"
OK
127.0.0.1:6379> hmset books python "cook python book" php "php book"
OK
127.0.0.1:6379> hset user age 29
(integer) 1
127.0.0.1:6379> hincrby user age 1
(integer) 30
  set 集合 它内部实现相当于特殊的字典,字典中所有 value 都是 null 值,field 是无序且唯一的。
127.0.0.1:6379> sadd books python
(integer) 1
127.0.0.1:6379> sadd books python
(integer) 0
127.0.0.1:6379> sadd books java golang
(integer) 2
127.0.0.1:6379> smembers books
1) "python"
2) "golang"
3) "java"
127.0.0.1:6379> sismember books java
(integer) 1
127.0.0.1:6379> scard books
(integer) 3
127.0.0.1:6379> spop books
"java"

 

zset 有序集合 集合中的元素带有 score,根据 score,对元素进行排序。比如:学生成绩,以学号为 member,以成绩为 score
127.0.0.1:6379> zadd books 9.0 "think in java"
(integer) 1
127.0.0.1:6379> zadd books 9.0 "java cookbook"
(integer) 1
127.0.0.1:6379> zrange books 0 -1
1) "java cookbook"
2) "think in java"
127.0.0.1:6379> zrevrange books 0 -1
1) "think in java"
2) "java cookbook"
127.0.0.1:6379> zcard books
(integer) 2
127.0.0.1:6379> zscore books "think in java"
"9"
127.0.0.1:6379> zrank books "think in java"
(integer) 1
127.0.0.1:6379> zrangebyscore books 0 8.91
(empty array)
127.0.0.1:6379> zrem books "think in java"
(integer) 1



标签:基本,127.0,0.1,数据类型,redis,6379,books,integer
From: https://www.cnblogs.com/zbseoag/p/17466337.html

相关文章

  • redis应用场景--缓存过期时间
    缓存可以有效的提高关键数据的获取速度,使得不必要每次查询数据库,避免了数据库被击穿。主动更新:需要知道这份数据的实效时间点,然后在那个时间点到来时重新更新数据,可能是查询数据库,也可能是访问第三接口,在获得数据之后,更新redis缓存。被动更新:程序每次都去redis获取数......
  • 从0开始学pytorch【3】--张量数据类型
    从0开始学pytorch【3】--张量数据类型前言学习目标基本数据类型创建tensor索引、切片小结前言  在前两篇博文中,从0开始学pytorch【1】–线性函数的梯度下降、从0开始学pytorch【2】——手写数字集案例中介绍了人工智能入门最为基础的梯度下降算法实现,以及机器学习、深度网络编......
  • 基本功练习_2_16_插入法
    ......
  • 基本功练习_2_16_选择法
    ......
  • Fans同学的基本信息-V1.1
    本着开放合作的心态,为方便好友之间的联系和合作,特将Fans同学的个人信息整理出来。1.基本信息姓名:雷文昵称:Fans,Fans同学,FansLei性别:男生日:1989年6月2日(农历)籍贯:湖北-襄阳-枣阳大学:本科-武汉科技大学-软件工程-083班高中:襄樊五中-05级08届-8班初中:璩湾一中2.趣味信......
  • Python+Redis学习笔记
    首先,通过pip来安装操作redis的相关包,pipinstallredis然后导入我们要使用的模块,formredis.ClientimportRedis然后,通过docker启动redis,fromredis.clientimportRedisr=Redis(host="0.0.0.0",port=6379,db=0,password="")#r.set("kol_height",187)res=r.......
  • Redis Cluster集群搭建
    rediscluster架构一个RedisCluster由多个Redis节点构成,不同节点组服务的数据没有交集,也就是每个一节点组对应数据sharding的一个分片.节点组内部分为主备两类节点,对应master和slave节点.两者数据实时一致,通过异步化的主备复制机制来保证.一个节点组有且只有一个......
  • redis主从、哨兵、cluster
    在redis集群中,从节点一般用于备份操作,主节点挂了,从节点顶上去,读写操作一般都是主读主写。主从架构用处:用于数据备份操作,主节点挂了之后可以有备份节点顶上去当主节点。缺点:主节点挂了需要手动切换从节点为主节点......
  • 1.ES入门与基本操作
    1.介绍与安装1.1.ElasticStack核心TheElasticStack,包括Elasticsearch、Kibana、Beats和Logstash(也称为ELKStack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。ES(ElaticSearch)是一个开源的高扩展的分布式全文搜索引擎,是整个Elas......
  • 数组和元祖数据类型
    使用案例来讲解TS的数组类型和元祖类型数组类型方式一要求:定义一个数组这个数组只能存储数值类型的数据letvalArr:Array<Number>//定义一个数组类型存储数值valArr=[1,2,3]//正常valArr=["1","2",3];//会报错console.log(valArr);方式二字符串数组类型......