一、概述
来自官网:
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster. Learn more →
二、Redis 安装
来自官网:installing
Download, extract and compile Redis with:
$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz
$ tar xzf redis-3.2.8.tar.gz
$ cd redis-3.2.8
$ make
The binaries that are now compiled are available in the src directory. Run Redis with:
$ src/redis-server
You can interact with Redis using the built-in client:
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
Are you new to Redis? Try our online, interactive tutorial.
三、Redis 使用介绍
Redis 的使用方式大致分为两种:
- 一是,命令行中使用 Redis
- 二是,程序(脚本)中使用 Redis。
3.1 命令行使用
首先,开启 Redis server,开启 Redis client
执行如下命令:
redis-server
,开启 Redis server- 在另一个终端上执行
redis-cli
,开启 Redis client
其次,关闭 Redis client,关闭 Redis client
Redis client 终端下执行 SHUTDOWN [NOSAVE|SAVE]
则关闭 server,执行 exit,则关闭 client 终端。
常用的命令参见:
Redis.io/commands
Redis 键(key)相关的命令及其它命令的查看地址
Redis命令详解-List
3.2 程序(脚本)中使用
以 Lua 为例,大致步骤为:
- 编写 Lua 脚本
- 执行命令,命令格式为:1redis-cli --eval [scripts file name] key:ip , argv[...]
注意:
- 在脚本中的 KEYS 对应上述命令中的 key,ARGV 对应命令中的 argv。
- 引用下标从 1 开始,’,’前后均有空格,不可省略。
- 诸多安全机制的限制。
由于此方式的执行机制为将 Lua 脚本上传至 Redis server 执行,因此 Redis 对脚本的执行进行了诸多限制。
- 脚本中的变量均需为 local,不允许全局变量。由于安全机制,不然会报错 Script attempted to access unexisting global variable
- 不提供访问系统状态状态的库。由于安全机制,屏蔽了许多命令。Script attempted to access unexisting global variable
实例
编写 Lua 脚本:
在命令行中执行
$ redis-cli --eval insert.lua data_listl:127.0.0.1 , 10 3