redis学习笔记

redis数据类型及支持的常用操作:

string

set/get/append/incr/decr/getrange/mget/mset/strlen

127.0.0.1:6379> set usersession:1 13323232323
OK
127.0.0.1:6379> get usersession:1
"13323232323"
127.0.0.1:6379> incr usersession:1
(integer) 13323232324
get  usersession:1 //  13323232324
 127.0.0.1:6379> append usersession:1 "extra data"
(integer) 21
127.0.0.1:6379> get usersession:1
"13323232324extra data"
127.0.0.1:6379> set customer:1 "customer00123"
OK
127.0.0.1:6379> getrange customer:1 8 13
"00123"

 127.0.0.1:6379> strlen customer:1
  (integer) 13

127.0.0.1:6379> mset order:1 "order1 data" order:2 "order2 data"
OK
127.0.0.1:6379> mget order:1 order:2
1) "order1 data"
2) "order2 data"

 

list : order list

just a sorted list of strings, sorted by insertion order

可以执行以下操作:

lpush/rpush/lrem/lset/lindex/lrange/llen/lpop/rpop/ltrim

127.0.0.1:6379> lpush recentcomments "comment 1"
(integer) 1
127.0.0.1:6379> lrange recentcomments 0 1
1) "comment 1"
127.0.0.1:6379> lpush recentcomments "comment 2"
(integer) 2
127.0.0.1:6379> lrange recentcomments 0 2
1) "comment 2"
2) "comment 1"
127.0.0.1:6379> rpush recentcomments "comment 3"
(integer) 3
127.0.0.1:6379> lrange recentcomments 0 3
1) "comment 2"
2) "comment 1"
3) "comment 3"
127.0.0.1:6379> rpush recentcomments "comment 4"
(integer) 4
127.0.0.1:6379> rpush recentcomments "comment 5"
(integer) 5
127.0.0.1:6379> lrange recentcomments 0 6
1) "comment 2"
2) "comment 1"
3) "comment 3"
4) "comment 4"
5) "comment 5"
127.0.0.1:6379> rpush recentcomments "comment 6"
(integer) 6
127.0.0.1:6379> lrange recentcomments 0 6
1) "comment 2"
2) "comment 1"
3) "comment 3"
4) "comment 4"
5) "comment 5"
6) "comment 6"
127.0.0.1:6379> ltrim recentcomments 0 4
OK
127.0.0.1:6379> lrange recentcomments 0 6
1) "comment 2"
2) "comment 1"
3) "comment 3"
4) "comment 4"
5) "comment 5"
127.0.0.1:6379>


127.0.0.1:6379> lindex recentcomments 2
"comment 3"
127.0.0.1:6379> lrange recentcomments 0 5
1) "comment 2"
2) "comment 1"
3) "comment 3"
4) "comment 4"
5) "comment 5"
127.0.0.1:6379> lpop recentcomments
"comment 2"
127.0.0.1:6379> lrange recentcomments 0 5
1) "comment 1"
2) "comment 3"
3) "comment 4"
4) "comment 5"
127.0.0.1:6379> lpop recentcomments
"comment 1"
127.0.0.1:6379> lrange recentcomments 0 5
1) "comment 3"
2) "comment 4"
3) "comment 5"
127.0.0.1:6379> rpop recentcomments
"comment 5"
127.0.0.1:6379> lrange recentcomments 0 5
1) "comment 3"
2) "comment 4"
127.0.0.1:6379>

redis> RPUSH mylist "hello"
(integer) 1
redis> RPUSH mylist "hello"
(integer) 2
redis> RPUSH mylist "foo"
(integer) 3
redis> RPUSH mylist "hello"
(integer) 4
redis> LREM mylist -2 "hello"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "foo"

 

sets: 

sets contain a collection of unique strings

sadd/scard/sdiff/sinter/sunion/sismember/smembers/smove/srem

127.0.0.1:6379> sadd post:1:likes "joe" "bob" "mary"
(integer) 3
127.0.0.1:6379> scard post:1:likes
(integer) 3
127.0.0.1:6379> smembers post:1:likes
1) "joe"
2) "bob"
3) "mary"
127.0.0.1:6379> sadd post:2:likes "joe" "tim"
(integer) 2
127.0.0.1:6379> sdiff post:1:likes post:2:likes
1) "bob"
2) "mary"
127.0.0.1:6379> sinter post:1:likes post:2:likes
1) "joe"
127.0.0.1:6379>

sorted sets:

zadd,zcard,zcount,zincrby,zrange,zrank,zrem,zscore

127.0.0.1:6379> zadd highscores 120 "joe" 100 "bob" 150 "mary" 104 "tim"
(integer) 4
127.0.0.1:6379> zrange highscores 0 4
1) "bob"
2) "tim"
3) "joe"
4) "mary"
127.0.0.1:6379> zrange highscores 0 4 withscores
1) "bob"
2) "100"
3) "tim"
4) "104"
5) "joe"
6) "120"
7) "mary"
8) "150"
127.0.0.1:6379> zadd highscores 125 "joe"
(integer) 0
127.0.0.1:6379> zrange highscores 0 4 withscores
1) "bob"
2) "100"
3) "tim"
4) "104"
5) "joe"
6) "125"
7) "mary"
8) "150"

hash

maps between string fields and string values

hset/hmset/hget/hmget/hgetall/hdel/hexists/hincrby/hkeys/hvals

pub and sub

redis can be used as a message bus

127.0.0.1:6379> subscribe greetings
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "greetings"
3) (integer) 1
1) "message"
2) "greetings"
3) "hello redis"
1) "message"
2) "greetings"
3) "hello redis again"

psubscribe gree* // 則這種情況下會subscribe所有的gree
// 另外一個窗口
C:\Redis>redis-cli.exe
127.0.0.1:6379> publish greetings "hello redis"
(integer) 1
127.0.0.1:6379> publish greetings "hello redis again"
(integer) 1
127.0.0.1:6379>

transction

 

转载于:https://www.cnblogs.com/kidsitcn/p/7967716.html

### Redis 学习笔记概述 Redis 是一种高性能的键值存储系统,支持多种数据结构并提供丰富的功能。为了全面掌握 Redis 的使用方法和技术细节,一份详尽的学习笔记应当覆盖以下几个方面: #### 一、基础概念介绍 - **定义与特性** - Redis 是一个开源的内存数据结构存储库,可以用作数据库、缓存和消息中间件[^1]。 - **应用场景** - 高效的数据读写操作使其适用于高速缓存场景;持久化的选项也允许作为可靠的主数据库。 #### 二、环境搭建指南 - **安装过程** - 安装完成后可以通过 `redis-server` 命令启动服务,默认情况下这会在前台运行并且占用当前终端会话[^2]。 - **后台模式配置** - 推荐通过编辑 `/usr/local/src/redis-6.2.6/redis.conf` 文件中的设置项使 Redis 在后台稳定工作。 #### 三、核心功能解析 - **基本命令集** - 包括字符串(Strings)、哈希(Hashes)、列表(Lists)等常见数据类型的增删改查指令。 - **高级特性应用** - 发布订阅(Pub/Sub),事务处理(Transaction),Lua脚本执行等功能的应用实例。 #### 四、集成开发实践 - **Spring Boot 整合案例** - 使用 Spring Data Redis 提供的 `RedisTemplate` 对象简化 Java 应用程序同 Redis 数据源之间的交互逻辑[^3]。 #### 五、优化策略探讨 - **性能调优技巧** - 考虑到 CPU 并非主要瓶颈因素而是受制于物理 RAM 和网卡吞吐能力的影响,合理规划硬件资源分配对于提升整体效率至关重要。 - **预加载机制说明** - 当应用程序首次上线前预先填充部分热点数据至 Redis 中可以有效缓解高峰期的压力,提高响应速度[^4]。 #### 六、可靠性保障措施 - **持久化方案对比** - RDB 快照方式能够在指定时间间隔内保存数据副本,确保意外断电等情况下的恢复可能性。 ```bash # 启动Redis服务器(建议采用守护进程方式) $ redis-server /path/to/redis.conf --daemonize yes ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值