1: redis的是key-value 数据库,value的数据类型有:
Lists (列表)
Sets (集合)
Sorted sets (有序集合)
Hashes (哈希表)
键值的数据类型决定了该键值支持的操作。Redis 支持诸如列表、集合或有序集合的交集、
并集、查集等高级原子操作;同时,如果键值的类型是普通数字,Redis 则提供自增等原子
操作。
2: strings 类型及操作
exists ljq //判断建是否存在 0 不存在 1
redis 127.0.0.1:6378> set ljq ljq
OK
redis 127.0.0.1:6378> get ljq
"ljq"
redis 127.0.0.1:6378> del ljq
(integer) 1
redis 127.0.0.1:6378> exists ljq
setnx ljq jljl // key存在, 不修改value,返回0
setex hello 10 red //set的value存在10s
redis 127.0.0.1:6378> get ljq
"ljq123"
redis 127.0.0.1:6378> setnx ljq jljl
(integer) 0
redis 127.0.0.1:6378> get ljq
"ljq123"
redis 127.0.0.1:6378> setex hello 10 red
OK
redis 127.0.0.1:6378> get hello
"red"
redis 127.0.0.1:6378> get hello
"red"
redis 127.0.0.1:6378> get hello
(nil)
setrange name 4 gmail,com // 范围修改 从1开始
mset h1 ljq1 h2 ljq2 // set多个
mset h1 ljqh1 h2 ljq222 // 修改多个
mget h1 h2 //获取多个key的值
getrange name 0 2 // 范围获取
redis 127.0.0.1:6378> get name
"ljq@qq.com"
redis 127.0.0.1:6378> setrange name 4 gmail,com
(integer) 13
redis 127.0.0.1:6378> get name
"ljq@gmail,com"
redis 127.0.0.1:6378> mset h1 ljq1 h2 ljq2
OK
redis 127.0.0.1:6378> get h1
"ljq1"
redis 127.0.0.1:6378> get h2
"ljq2"
redis 127.0.0.1:6378> mset h1 ljqh1 h2 ljq222
OK
redis 127.0.0.1:6378> get h1
"ljqh1"
redis 127.0.0.1:6378> get h2
"ljq222"
redis 127.0.0.1:6378> getset name
(error) ERR wrong number of arguments for 'getset' command
redis 127.0.0.1:6378> getset name
(error) ERR wrong number of arguments for 'getset' command
redis 127.0.0.1:6378> get name
"ljq@gmail,com"
redis 127.0.0.1:6378> getset name ljss
"ljq@gmail,com"
redis 127.0.0.1:6378> get name
"ljss"
原子操作
incr age //原子操作 加1
incrby age 6 //原子操作 加6
redis 127.0.0.1:6378> set age 12
OK
redis 127.0.0.1:6378> incr age
(integer) 13
redis 127.0.0.1:6378> incr age
(integer) 14
redis 127.0.0.1:6378> incr age
(integer) 15
redis 127.0.0.1:6378> incr age
(integer) 16
redis 127.0.0.1:6378> get age
"16"
redis 127.0.0.1:6378> incrby age 6
(integer) 22
redis 127.0.0.1:6378> get age
"22"
redis 127.0.0.1:6378> decr age
(integer) 21
redis 127.0.0.1:6378> decr age
(integer) 20
redis 127.0.0.1:6378> decrby 6
(error) ERR wrong number of arguments for 'decrby' command
redis 127.0.0.1:6378> decrby age 6
(integer) 14
redis 127.0.0.1:6378> get name
"ljss"
redis 127.0.0.1:6378> append name @qq.com
(integer) 11
redis 127.0.0.1:6378> get name
"ljss@qq.com"
redis 127.0.0.1:6378> strlen name
(integer) 11
redis 127.0.0.1:6378> get age
"14"
redis 127.0.0.1:6378> strlen age
(integer) 2
2: hashes类型及操作
redis的hashes是key-value键值对, 特别适合用于存储对象。相较于将对象的每个字段存成单个 string 类型。
将一个对象存储在 hash 类型中会占用更少的内存,并且可以更方便的存取整个对象。省内存的原因是新
建一个 hash 对象时开始是用 zipmap(又称为 small hash)来存储的。这个 zipmap 其实并不
是 hash table,但是 zipmap 相比正常的 hash 实现可以节省不少 hash 本身需要的一些元数据
存储开销。尽管 zipmap 的添加,删除,查找都是 O(n),但是由于一般对象的 field 数量都不太多。所以使用 zipmap 也是很快的,也就是说添加删除平均还是 O(1)。如果 field 或者 value的大小超出一定限制后,
Redis 会在内部自动将 zipmap 替换成正常的 hash 实现. 这个限制可以在配置文件中指定
hash-max-zipmap-entries 64 #配置字段最多 64 个,
hash-max-zipmap-value 512 #配置 value 最大为 512 字节
1: hset, hget
redis 127.0.0.1:6378> hset testhash key1 value1
(integer) 1
redis 127.0.0.1:6378> hget testhash key1
"value1"
redis 127.0.0.1:6378>
2:hsetnx
redis 127.0.0.1:6378> hsetnx testhash key1 ljq
(integer) 0
redis 127.0.0.1:6378> hget testhash key1
"value1"
redis 127.0.0.1:6378>
3:hmset, hmget set多个取多个
redis 127.0.0.1:6378> hmset myhash key1 vlaue1 key2 value2
OK
redis 127.0.0.1:6378> hmget myhash key1 key2
1) "vlaue1"
2) "value2"
4:hincrby 原子加
redis 127.0.0.1:6378> hset inhash key1 20
(integer) 1
redis 127.0.0.1:6378> hincr inhash key1
(error) ERR unknown command 'hincr'
redis 127.0.0.1:6378> hincrby inhash key1 5
(integer) 25
5:hexists, hlen 计算里面field的数量
redis 127.0.0.1:6378> hexists myhash key1
(integer) 1
redis 127.0.0.1:6378> hget myhash key1
"vlaue1"
redis 127.0.0.1:6378> hlen myhahs key1
(error) ERR wrong number of arguments for 'hlen' command
redis 127.0.0.1:6378> hlen myhah key1
(error) ERR wrong number of arguments for 'hlen' command
redis 127.0.0.1:6378> hlen myhash
(integer) 2
6: hdel删除一个key
redis 127.0.0.1:6378> hlen myhash
(integer) 3
redis 127.0.0.1:6378> hlen myhash key2
(error) ERR wrong number of arguments for 'hlen' command
redis 127.0.0.1:6378> hdel myhash key2
(integer) 1
redis 127.0.0.1:6378> hlen myhash
(integer) 2
7:获得所有的key 和value
redis 127.0.0.1:6378> hkeys myhash
1) "key1"
2) "key3"
redis 127.0.0.1:6378> hvals myhash
1) "vlaue1"
2) "value3"
redis 127.0.0.1:6378> hgetall myhash
1) "key1"
2) "vlaue1"
3) "key3"
4) "value3"
分享到:
相关推荐
3. Redis的数据类型与操作:如基本的字符串(Strings)操作、哈希(Hashes)用于存储对象、列表(Lists)实现消息队列、集合(Sets)进行不重复元素存储、有序集合(Sorted Sets)进行排序操作等。 4. Redis的持久化机制:...
4. **丰富的数据类型**:Redis 不仅支持基本的数据类型,还支持复杂的数据结构。 5. **主从复制**:Redis 支持主从复制,可以进行读写分离,提高性能和数据安全性。 6. **高可用性**:通过 Redis Sentinel 系统或...
4. **丰富的数据类型**:Redis 不仅支持基本的数据类型,还支持复杂的数据结构。 5. **主从复制**:Redis 支持主从复制,可以进行读写分离,提高性能和数据安全性。 6. **高可用性**:通过 Redis Sentinel 系统或...
2. **Redis数据类型及操作**:这是Redis的核心部分,包括五大数据类型: - **字符串(String)**:最基础的数据类型,支持设置、获取、增加、减少等操作。 - **哈希(Hash)**:用于存储键值对集合,适用于存储对象。 ...
4. **丰富的数据类型**:Redis 不仅支持基本的数据类型,还支持复杂的数据结构。 5. **主从复制**:Redis 支持主从复制,可以进行读写分离,提高性能和数据安全性。 6. **高可用性**:通过 Redis Sentinel 系统或...
2. Redis的数据类型: - String:基本的字符串类型,支持设置、获取和操作字符串。 - List:有序的元素集合,支持两端插入和弹出操作。 - Set:无序的唯一元素集合,支持添加、删除和查询元素。 - Hash:键值对...
- 字符串(String):最基础的数据类型,可以存储字符串、整数或浮点数。 - 哈希(Hash):用于存储键值对的集合,适合表示对象。 - 列表(List):双向链表结构,可进行顺序操作,如添加、删除元素。 - 集合(Set):...
1. **数据类型**:Redis支持五种基本数据类型,包括字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets)。这些数据类型为多种应用场景提供了灵活的数据结构。 2. **持久化机制**:...
2. **键值浏览**:提供树状视图,清晰地展示Redis中的键和其对应的值,支持多种数据类型如字符串、哈希、列表、集合和有序集合。 3. **操作命令**:内置了常用的Redis命令,用户可以直接在界面上执行,无需打开...
**面试题3:Redis的内存管理策略是什么?** 答:Redis使用LRU(Least Recently Used)算法进行内存淘汰。当内存达到上限时,Redis会删除最近最少使用的键来释放空间。另外,还可以配置为LFU(Least Frequently Used...
* 数据类型:Redis 支持多种数据结构,而 Memcached 只支持简单的字符串。 * 速度:Redis 的速度比 Memcached 快很多。 * 持久化:Redis 支持持久化,而 Memcached 不支持。 标题:Redis 的数据类型 Redis 支持...
3. 排行榜:Redis 提供了列表和有序集合数据结构,合理地使用这些数据结构可以很方便地构建各种排行榜系统。 4. 社交网络:赞/踩、粉丝、共同好友/喜好、推送、下拉刷新。 5. 消息队列:Redis 提供了发布订阅功能和...
本文档旨在为读者提供一个Redis入门指南,从Redis的基本概念到高级应用,涵盖了Redis的历史、特点、数据类型、命令、使用场景等方面的知识点。 Redis的历史 Redis的创始人是Salvatore Sanfilippo,于2009年发布了...
1. 数据浏览:显示键值对的详细信息,包括数据类型、过期时间等。 2. 搜索和过滤:通过搜索框快速查找特定的键或值。 3. 编辑和操作:直接在界面上修改键值,支持批量操作。 4. 导入和导出:将数据导入到Redis,或者...
4. **丰富的数据类型**:Redis 不仅支持基本的数据类型,还支持复杂的数据结构。 5. **主从复制**:Redis 支持主从复制,可以进行读写分离,提高性能和数据安全性。 6. **高可用性**:通过 Redis Sentinel 系统或...
3. **支持多种数据类型**:Redis支持字符串(strings)、列表(lists)、集合(sets)、有序集合(sorted sets)、散列(hashes)、位图(bitmaps)、超日志(hyperloglogs)等数据类型。 4. **原子操作**:Redis的...
4. **丰富的数据类型**:Redis 不仅支持基本的数据类型,还支持复杂的数据结构。 5. **主从复制**:Redis 支持主从复制,可以进行读写分离,提高性能和数据安全性。 6. **高可用性**:通过 Redis Sentinel 系统或...
本文将深入探讨如何使用Java操作Redis的四种主要数据类型:字符串(String)、列表(List)、哈希(Hash)和集合(Set)。 首先,我们来看**字符串类型**(String)。在Redis中,字符串是最基础的数据类型,可以...
1. **数据类型**:Redis提供了丰富的数据结构支持,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets)。这些数据类型的使用极大地提高了开发效率和数据处理能力。 2. **持久化**:...