Redis Linux下安装
Redis的代码遵循ANSI-C编写,可以在所有POSIX系统(如Linux, *BSD, Mac OS X, Solaris等)上安装运行。而且Redis并不依赖任何非标准库,也没有编译参数必需添加。redis的安装出奇的简单,这可能也是他风靡的一个原因,让人很容易上手,不像某些东西,编译阶段就能让人完全绝望。
安装命令:
$ wget http://download.redis.io/releases/redis-2.8.19.tar.gz
$ tar xzf redis-2.8.19.tar.gz
$ cd redis-2.8.19
$ make
现在就可以启动redis了,redis只有一个启动参数,就是他的配置文件路径。
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"
这时你可以打开一个终端进行测试了,配置文件中默认的监听端口是6379
我们可以开启一个Redis客户端进行测试
[iyunv@SNDA-192-168-1-114 ~]# redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected> exit
[iyunv@SNDA-192-168-1-114 ~]# redis-server /etc/redis.conf
[iyunv@SNDA-192-168-1-114 ~]# redis-cli
redis 127.0.0.1:6379> quit Redis 常用命令
1. 手动抓取快照,save或者bgsave(后台异步) redis> save
OK redis> bgsave
Background saving started
5. 重命名一个key redis> rename name myname
OK redis> keys *
1) "myname"
2) "mylist"
6. list的一些操作
6.1 将一个值添加到列表的首部 redis> rpush company taobao
(integer) 1 redis> lrange company 0 1
1) "taobao"
6.2将一个值添加到列表的尾部 redis> lpush company sina
(integer) 2 redis> lrange company 0 1
1) "sina"
2) "taobao"
6.3 获得列表长度 redis> llen company
(integer) 2
6.4 返回list中某个范围的值,模式LRANGE key start end redis> lrange company 1 2
1) "taobao"
2) "sohu"
6.5 只保留list中某个范围的值,模式LTRIM key start end redis> lrange company 0 2
1) "sina"
2) "taobao"
3) "sohu" redis> ltrim company 0 1
OK redis> lrange company 0 2
1) "sina"
2) "taobao"
6.6 获得list中某个索引号的值,模式LINDEX key index redis> lrange company 0 4
1) "baidu"
2) "sohu"
3) "sina"
4) "taobao" redis> lindex company 2
"sina" redis> lindex company 0
"baidu"
6.7 设置list中某个索引位置的值,模式LSET key index value redis> lrange company 0 4
1) "baidu"
2) "sohu"
3) "sina"
4) "taobao" redis> lset company 2 google
OK redis> lrange company 0 4
1) "baidu"
2) "sohu"
3) "google"
4) "taobao"
6.8 用lpop获取list中索引最小的值(头部值),rpop获取list中索引最大的值(尾部值),注意获取之后list中就不再有这个值了。 redis> lrange company 0 4
1) "baidu"
2) "sohu"
3) "google"
4) "taobao" redis> lpop company
"baidu" redis> rpop company
"taobao" redis> lrange company 0 4
1) "sohu"
2) "google"
特别注意:以上这些命令中的start或者index都是从0开始计算的
7. 集合的一些操作
7.1 向集合中增加一个元素,模式SADD key member redis> sadd class kongxing
(integer) 1 redis> type class
set
7.2 列出集合中的所有元素,注意元素是无序的,模式SMEMBERS key redis> smembers class
1) "banqiao"
2) "rulong"
3) "changjie"
4) "kongxing"
7.3从集合中删除一个元素,模式SREM key member redis> srem class kongxing
(integer) 1 redis> smembers class
1) "banqiao"
2) "rulong"
3) "changjie"
7.4 返回集合大小,模式SCARD key redis> scard class
(integer) 3
7.5判断某个值是否在集合中,模式SISMEMBER key member redis> sismember class kongxing
(integer) 0—表示没有’kongxing’这个元素 redis> sismember class rulong
(integer) 1—表示存在’rulong’这个元素
7.6获取多个集合的交集元素,模式SINTER key1 key2 ... keyN redis> smembers dba
1) "rulong"
2) "changjie" redis> smembers class
1) "banqiao"
2) "rulong"
3) "kongxing"
4) "changjie" redis> sinter class dba
1) "rulong"
2) "changjie" redis> sinter dba class
1) "rulong"
2) "changjie"
---注意:取交集,所以与各个key的位置无关
8.其他命令
8.1启动 Redis 服务 src/redis-server或者src/redis-server redis.conf
src/redis-server redis.conf 1>log.log 2>errlog.log
1为标准输出,2为错误输出
8.2 将 Redis 作为 Linux 服务随机启动
vi /etc/rc.local, 加入代码: /root/install/redis-2.4.9/src/redis-server
8.3 客户端连接 src/redis-cli
8.4 停止redis服务: src/redis-cli shutdown
8.5 当前的key是否存在 exists larry
(integer) 0
8.6删除当前key
del lv
8.7设置过期时间 expire larry 10
(integer) 1
8.8移动larry键值对到ad4数据库 move larry ad4
(integer) 1
8.9移除当前key的过期时间 persist lv
(integer) 1
8.10测试连接是否还在 ping
PONG
8.11打印 echo name
"larry"
8.11数据库切换 select ad4databank
OK
8.12退出连接 quit
8.13当前数据库中key的数量 dbsize
(integer) 12
8.14服务器基本信息 info
8.15实时转储收到的请求 monitor
8.16获取服务器的参数配置 config get
8.17清空当前数据库 flushdb
8.18清除所有数据库 flushall
Redis 性能
下面是官方的bench-mark数据:
The test was done with 50 simultaneous clients performing 100000 requests.
The value SET and GET is a 256 bytes string.
The Linux box is running Linux 2.6, it’s Xeon X3320 2.5Ghz.
Text executed using the loopback interface (127.0.0.1).
Results: about 110000 SETs per second, about 81000 GETs per second.
更多详细数据请见官方bench-mark page(http://code.google.com/p/redis/wiki/Benchmarks)