`
Donald_Draper
  • 浏览: 980083 次
社区版块
存档分类
最新评论

Redis数据类型操作命令

阅读更多
Redis教程:
http://www.runoob.com/redis/redis-commands.html
http://www.yiibai.com/redis/redis_quick_guide.html
##连接redis
[root@zabbix redis]# redis-cli -h localhost -p 6379 -a redis
##获取全局配置属性,日志级别
localhost:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"
##查看Server状态
localhost:6379> ping
PONG

Redis键操作:

##新建key设置为rain,如果存在则覆盖
localhost:6379> get name
"donald"
localhost:6379> set name rain
OK
##获取key的值
localhost:6379> get name
"rain"
##该命令返回存储在指定键的值的序列化版本。
localhost:6379> dump name
"\x00\x04rain\x06\x00\xdd\xd8YA\x0b\xa2K\t"
##此命令检查该键是否存在。
localhost:6379> exists name
(integer) 1
##指定键的过期时间
localhost:6379> expire name 100
(integer) 1
##获取键到期的剩余时间
localhost:6379> ttl name
(integer) 97
localhost:6379> ttl name
(integer) 93
localhost:6379> ttl name
(integer) -2
localhost:6379> get name
(nil)
localhost:6379> set name donald
OK
localhost:6379> get name
"donald"
##返回存储在键的数据类型的值
localhost:6379> type name
string
##更改键的名称
localhost:6379> rename name names
OK
localhost:6379> get name
(nil)
localhost:6379> get names
"donald"
##此命令删除键,如果存在
localhost:6379> del names
(integer) 1
localhost:6379> get names
(nil)
localhost:6379> 
##################
键操作可以对所有数据类型
###############


Redis String操作



#此命令用于在指定键设置值
localhost:6379> set name donald
OK
localhost:6379> get name
"donald"
#设置键的字符串值,并返回旧值
localhost:6379> getset name 1
"donald"
localhost:6379> get name
"1"
#得到存储在键的值的长度
localhost:6379> strlen name
(integer) 1
#增加键的整数值一次
localhost:6379> incr name
(integer) 2
localhost:6379> get name
"2"
localhost:6379> incr name
(integer) 3
#递减键一次的整数值
localhost:6379> decr name
(integer) 2
localhost:6379> get name
"2"
#设置键的值,只有当该键不存在
localhost:6379> setnx name rain
(integer) 0
localhost:6379> get name
"2"
localhost:6379> 
#键到期时设置值
localhost:6379> setex name 10 rain
OK
localhost:6379> get name
"rain"
localhost:6379> ttl name
(integer) 5
localhost:6379> ttl name
(integer) -2
localhost:6379> get name
(nil)
localhost:6379> 


Redis哈希
#设置多个哈希字段的多个值
localhost:6379> hmset person name donald age 20 sex man
OK
#判断一个哈希字段存在与否
localhost:6379> hexists person name
(integer) 1
#获取存储在指定的键散列字段的值
localhost:6379> hget person name
"donald"
localhost:6379> hget person age
"20"
localhost:6379> hget person sex
"man"
#获取存储在指定的键所有散列字段的值
localhost:6379> hgetall person
1) "name"
2) "donald"
3) "age"
4) "20"
5) "sex"
6) "man"
#获取所有在哈希字段
localhost:6379> hkeys person
1) "name"
2) "age"
3) "sex"
#获取哈希字段数
localhost:6379> hlen person
(integer) 3
#获取在哈希中的所有值
localhost:6379> hvals person
1) "donald"
2) "20"
3) "man"
#设置哈希字段的字符串值
localhost:6379> hset person name rain
(integer) 0
localhost:6379> hget person name
"rain"
#设置哈希字段的值,仅当该字段不存在
localhost:6379> hsetnx person name donald
(integer) 0
localhost:6379> hget person name
"rain"
localhost:6379> expire persion 100
(integer) 0
localhost:6379> expire person 100
(integer) 1
localhost:6379> ttl person
(integer) 97
localhost:6379> ttl person
(integer) 94
localhost:6379> 
#删除哈希key的字段
localhost:6379> hdel person name
(integer) 1
localhost:6379> hkeys person
1) "age"
2) "sex"
localhost:6379> 

Redis列表
#在列表栈,添加一个或多个值入栈
localhost:6379> lpush user donald
(integer) 1
localhost:6379> lpush user rain
(integer) 2
localhost:6379> lpush user jamel
(integer) 3
##获取列表栈中的值start, end,end为-1为取出所有
localhost:6379> lrange user 0 -1
1) "jamel"
2) "rain"
3) "donald"
localhost:6379> lpush user done
(integer) 4
localhost:6379> lrange user 0 -1
1) "done"
2) "jamel"
3) "rain"
4) "donald"
##将值添加到栈低
localhost:6379> rpush user doing
(integer) 5
localhost:6379> lrange user 0 -1
1) "done"
2) "jamel"
3) "rain"
4) "donald"
5) "doing"
localhost:6379> 
#获取列表的长度
localhost:6379> llen user
(integer) 5
#获取并取出列表中的栈顶第一个元素,
localhost:6379> lpop user
"done"
#取出并获取列表中的栈低最后一个元素,
localhost:6379> rpop user
"doing"
localhost:6379> llen user
(integer) 3
localhost:6379> lrange user 0 -1
1) "jamel"
2) "rain"
3) "donald"
#从一个列表其索引获取对应的元素
localhost:6379> lindex user 1
"rain"
#移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
localhost:6379> blpop user 1000
1) "user"
2) "jamel"
#移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
localhost:6379> brpop user 1000
1) "user"
2) "donald"
localhost:6379> 


Redis 集合(Set)

#向集合添加一个或多个成员
localhost:6379> sadd user1 "donald"
(integer) 1
localhost:6379> sadd user1 "jamel"
(integer) 1
#获取集合的成员数
localhost:6379> scard user1
(integer) 2
#返回集合中的所有成员
localhost:6379> smembers user1
1) "jamel"
2) "donald"
#移除并返回集合中的一个随机元素
localhost:6379> spop user1
"donald"
localhost:6379> smembers user1
1) "jamel"
localhost:6379> sadd user1 "donald"
(integer) 1
localhost:6379> smembers user1
1) "jamel"
2) "donald"
localhost:6379> sadd user2 "rain"
(integer) 1
localhost:6379> sadd user2 "rain"
(integer) 0
#判断 member 元素是否是集合 key 的成员
localhost:6379> sismember user1 "jamel"
(integer) 1
##返回给定所有集合的差集
localhost:6379> sdiff user1 user2
1) "jamel"
2) "donald"
localhost:6379> sdiff user2 user1
1) "rain"
返回给定所有集合的差集并存储在 user3 中
localhost:6379> sdiffstore user3 user1 user2
(integer) 2
localhost:6379> smembers user3
1) "jamel"
2) "donald"
localhost:6379> sadd user2 "doanld"
(integer) 1
#返回给定所有集合的交集
localhost:6379> sinter user1 user2
(empty list or set)
localhost:6379> sinter user1 user3
1) "jamel"
2) "donald"
localhost:6379> smembers user2
1) "doanld"
2) "rain"
localhost:6379> sinter uesr2 user1
(empty list or set)
#返回给定所有集合的交集并存储在 user4 中
localhost:6379> sinterstore user4 user1 user3
(integer) 2
localhost:6379> smembers user4
1) "jamel"
2) "donald"
##注意字符串要待引号"name",否则交集可能不正确
127.0.0.1:6379> sadd name "donald"
(integer) 1
127.0.0.1:6379> sadd name "jamel"
(integer) 1
127.0.0.1:6379> sadd name1 "jamel"
(integer) 1
127.0.0.1:6379> sinter name name1
1) "jamel"
127.0.0.1:6379> 

Redis 有序集合(sorted set)

#向有序集合添加一个或多个成员,或者更新已存在成员的分数
localhost:6379> zadd user1 1 donald
(integer) 1
localhost:6379> zadd user1 2 jamel
(integer) 1
#获取有序集合的成员数
localhost:6379> zcard user1
(integer) 2
#计算在有序集合中指定区间分数的成员数
localhost:6379> zcount user 0 1
(integer) 0
localhost:6379> zcount user 1 2
(integer) 0
localhost:6379> zcount user1 1 2
(integer) 2
localhost:6379> zcount user1 0 1
(integer) 1
localhost:6379> zadd user1 0 rain
(integer) 1
localhost:6379> zcount user1 0 1
(integer) 2
#通过索引区间返回有序集合成指定区间内的成员
localhost:6379> zrange user1 0 2 
1) "rain"
2) "donald"
3) "jamel"
localhost:6379> zrange user1 0 2 withscores
1) "rain"
2) "0"
3) "donald"
4) "1"
5) "jamel"
6) "2"
#返回有序集合中指定成员的索引
localhost:6379> zrank user1 donald
(integer) 1
#返回有序集中,成员的分数值
localhost:6379> zscore user1 donald
"1"
localhost:6379> zscore user1 jamel
"2"
localhost:6379> 
#移除有序集合中的一个或多个成员
localhost:6379> zrem user1 jamel
(integer) 1
localhost:6379> zrange user1 0 2 withscores
1) "rain"
2) "0"
3) "donald"
4) "1"
localhost:6379> 




Redis HyperLogLog

Redis 在 2.8.9 版本添加了 HyperLogLog 结构。
Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,
在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。
这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。
但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,
所以 HyperLogLog 不能像集合那样,返回输入的各个元素。
什么是基数?
比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 
基数估计就是在误差可接受的范围内,快速计算基数。 
#添加指定元素到 HyperLogLog 中
localhost:6379> pfadd digital 1
(integer) 1
localhost:6379> pfadd digital 2
(integer) 1
localhost:6379> pfadd digital 4
(integer) 1
localhost:6379> pfadd digital 5
(integer) 1
localhost:6379> pfadd digital 5
(integer) 0
localhost:6379> pfadd digital 6
(integer) 1
localhost:6379> pfadd digital 7
(integer) 1
localhost:6379> pfadd digital 7
(integer) 0
#返回给定 HyperLogLog 的基数估算值。
localhost:6379> pfcount digital
(integer) 6
localhost:6379> 


##所有全局配置属性
localhost:6379> CONFIG GET *
  1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) "redis"
  5) "masterauth"
  6) ""
  7) "unixsocket"
  8) ""
  9) "logfile"
 10) "/redis/logs/redis.log"
 11) "pidfile"
 12) "/var/run/redis.pid"
 13) "maxmemory"
 14) "0"
 15) "maxmemory-samples"
 16) "5"
 17) "timeout"
 18) "0"
 19) "tcp-keepalive"
 20) "0"
 21) "auto-aof-rewrite-percentage"
 22) "100"
 23) "auto-aof-rewrite-min-size"
 24) "67108864"
 25) "hash-max-ziplist-entries"
 26) "512"
 27) "hash-max-ziplist-value"
 28) "64"
 29) "list-max-ziplist-entries"
 30) "512"
 31) "list-max-ziplist-value"
 32) "64"
 33) "set-max-intset-entries"
 34) "512"
 35) "zset-max-ziplist-entries"
 36) "128"
 37) "zset-max-ziplist-value"
 38) "64"
 39) "hll-sparse-max-bytes"
 40) "3000"
 41) "lua-time-limit"
 42) "5000"
 43) "slowlog-log-slower-than"
 44) "10000"
 45) "latency-monitor-threshold"
 46) "0"
 47) "slowlog-max-len"
 48) "128"
 49) "port"
 50) "6379"
 51) "tcp-backlog"
 52) "511"
 53) "databases"
 54) "16"
 55) "repl-ping-slave-period"
 56) "10"
 57) "repl-timeout"
 58) "60"
 59) "repl-backlog-size"
 60) "1048576"
 61) "repl-backlog-ttl"
 62) "3600"
 63) "maxclients"
 64) "10000"
 65) "watchdog-period"
 66) "0"
 67) "slave-priority"
 68) "100"
 69) "min-slaves-to-write"
 70) "0"
 71) "min-slaves-max-lag"
 72) "10"
 73) "hz"
 74) "10"
 75) "cluster-node-timeout"
 76) "15000"
 77) "cluster-migration-barrier"
 78) "1"
 79) "cluster-slave-validity-factor"
 80) "10"
 81) "repl-diskless-sync-delay"
 82) "5"
 83) "cluster-require-full-coverage"
 84) "yes"
 85) "no-appendfsync-on-rewrite"
 86) "no"
 87) "slave-serve-stale-data"
 88) "yes"
 89) "slave-read-only"
 90) "yes"
 91) "stop-writes-on-bgsave-error"
 92) "yes"
 93) "daemonize"
 94) "no"
 95) "rdbcompression"
 96) "yes"
 97) "rdbchecksum"
 98) "yes"
 99) "activerehashing"
100) "yes"
101) "repl-disable-tcp-nodelay"
102) "no"
103) "repl-diskless-sync"
104) "no"
105) "aof-rewrite-incremental-fsync"
106) "yes"
107) "aof-load-truncated"
108) "yes"
109) "appendonly"
110) "yes"
111) "dir"
112) "/redis/data"
113) "maxmemory-policy"
114) "noeviction"
115) "appendfsync"
116) "everysec"
117) "save"
118) "900 1 300 10 60 10000"
119) "loglevel"
120) "notice"
121) "client-output-buffer-limit"
122) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"
123) "unixsocketperm"
124) "0"
125) "slaveof"
126) ""
127) "notify-keyspace-events"
128) ""
129) "bind"
130) ""
localhost:6379> 
分享到:
评论

相关推荐

    redis的基本操作命令.docx

    Redis 提供了多种数据类型,如字符串、哈希、列表、集合、有序集合等,并支持事务、发布订阅、 Lua 脚本等功能。本文将详细介绍 Redis 的基本操作命令,包括与服务器的沟通、查看当前数据库中 key 的数目、切换库、...

    Redis数据类型视频

    在本课程中,你将了解Redis是什么、能干什么、如何用,了解NoSQL的使用场景和概念,快速掌握Redis的安装配置、五大数据类型、常用操作命令、Redis持久化、主从复制、事务控制以及用Jedis操作进行Java开发等知识。...

    Redis_Key操作命令

    【Redis_Key操作命令】是Redis中的重要组成部分,主要用于管理和操作Redis数据库中的键(Key)。Redis是一种内存数据存储系统,常用于实现数据队列、缓存、计数器等多种功能,而Key的操作是实现这些功能的基础。 一...

    Redis实战_Redis实战中文完整版_Redis快速入门_Redis数据类型及操作_Redis常用

    2. **Redis数据类型及操作**:这是Redis的核心部分,包括五大数据类型: - **字符串(String)**:最基础的数据类型,支持设置、获取、增加、减少等操作。 - **哈希(Hash)**:用于存储键值对集合,适用于存储对象。 ...

    Java操作Redis的多种数据类型

    然后,根据需要操作的数据类型,调用相应的API执行命令。完成操作后,别忘了关闭连接,即`jedis.close();`。 总的来说,Java操作Redis的四种数据类型提供了一种灵活且高效的方式来存储和处理数据。通过熟练掌握这些...

    Redis基础架构与数据类型 Redis键值操作与命令 Redis字符串与列表数据结构 Redis哈希与集合数据结构

    Redis基础架构与数据类型 Redis键值操作与命令 Redis字符串与列表数据结构 Redis哈希与集合数据结构 Redis排序集合与使用场景 Redis持久化策略与RDB Redis持久化策略与AOF Redis主从复制与集群配置 Redis事务与Lua...

    c++ 操作redis数据库

    1. Redis的数据结构和命令:理解Redis提供的不同数据类型及其操作命令,如字符串、哈希表、列表、集合、有序集合等。 2. C++库选择:熟悉cpp-redis、hiredis等C++ Redis客户端库,了解其API用法。 3. 网络编程:理解...

    redis数据类型指令整理

    通过以上对Redis数据类型及其相关指令的整理,我们可以了解到Redis提供了非常丰富和灵活的数据操作能力,这使得Redis成为了一个在多种应用场景下都非常实用的工具。无论是在数据存储、缓存加速还是消息队列等场景,...

    Redis 命令参考手册中文完整版chm

    一、Redis数据类型 Redis支持五种基本数据类型:字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。这些数据类型为各种应用场景提供了灵活性和高效性。 1. 字符串(String):...

    Redis数据类型.docx

    Redis 是一个高性能的键值存储系统,它支持多种数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)以及有序集合(Sorted Set)。这些数据类型的特性使得Redis成为处理各种数据结构的理想选择...

    redis 命令手册 命令实践

    Redis 命令手册介绍了 Redis 常用键命令和数据类型命令,是目前最全的 Redis 命令手册。 在Redis命令手册中,你可以找到关于常用键命令的详细说明,如SET、GET、DEL等命令,它们用于操作和管理键值对数据。这些命令...

    Redis集群数据迁移操作文档

    在sync模式下,RedisShake使用SYNC或PSYNC命令实现源端Redis到目标端Redis的数据同步,同时支持全量和增量同步。 迁移参数的设置至关重要。例如,`source.type`定义了源Redis的类型,可以是standalone、sentinel、...

    redis常用命令集合.pdf

    1. Redis数据类型及其使用场景 - String(字符串):以key=value的形式存储数据,适用于常规计数、持久化定时任务。例如,可以作为系统内的计数器或存储数字类型数据。 - Hash(哈希):存储对象的key=value映射表...

    redis命令实践redis命令实践redis命令实践.txt

    本文主要介绍了Redis的一些基础操作命令以及常用数据结构的操作方法。通过这些命令,我们可以高效地管理Redis中的数据。然而,Redis的功能远不止于此,还有许多高级特性等待我们去探索和学习,比如事务处理、Lua脚本...

    Redis参数配置和命令使用手册

    1. **数据类型操作**: - `SET key value`: 存储键值对。 - `GET key`: 获取键对应的值。 - `DEL key [key ...]`: 删除一个或多个键。 - `LPUSH key value [value ...]`: 在列表头部添加元素。 - `RPOP key`: ...

    Redis学习资料

    Redis学习手册 Hash数据类型 doc Redis学习手册 Key操作命令 doc Redis学习手册 List数据类型 doc Redis学习手册 Set数据类型 doc Redis学习手册 Sorted Sets数据类型 doc Redis学习手册 String数据类型 doc Redis...

    java操作redis.docx

    本文档将详细介绍使用 Java 操作 Redis 的方法,包括基本命令、数据类型、string 操作、list 操作等。 一、基本命令 在使用 Java 操作 Redis 之前,需要了解基本的 Redis 命令。这些命令包括连接操作命令、持久化...

    NestJS+Redis 基本命令学习,不同数据类型的操作学习

    redis命令实践 NestJS+Redis 基本命令学习,不同数据类型的操作学习 NestJS+Redis 基本命令学习,不同数据类型的操作学习 NestJS+Redis 基本命令学习,不同数据类型的操作学习

    Redis命令参考手册

    Redis命令参考手册详细罗列了Redis能够执行的各种操作命令,根据数据类型的不同,这些命令可以被分为几大类。 对于键(Key)的操作,Redis提供了DEL、DUMP、EXISTS、EXPIRE、EXPIREAT、KEYS、MIGRATE、MOVE、OBJECT...

Global site tag (gtag.js) - Google Analytics