`
chencvgk
  • 浏览: 15590 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Redis 安装与使用

阅读更多

Redis Windows 下安装

下载地址:https://github.com/dmajkic/redis/downloads
下载下来的包里有两个,一个是32位的,一个是64位的。

把这个文件夹复制到其它地方,比如D:\redis 目录下。
打开一个cmd窗口 使用cd命令切换目录到d:\redis 运行 redis-server.exe redis.conf
如果想方便的话,可以把redis的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个redis.conf可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:


这时候别启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了
切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379 出现下图


redis.conf配置文件相关说明

 

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的安装非常简单,已经有现成的Makefile文件,直接运行make命令即可。

Redis 由四个可执行文件:redis-benchmark、redis-cli、redis-server、redis-stat 这四个文件,加上一个redis.conf就构成了整个redis的最终可用
包。它们的作用如下:

  • redis-server:Redis服务器的daemon启动程序
  • redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
  • redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
  • redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况


现在就可以启动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"

注意,默认复制过去的redis.conf文件的daemonize参数为no,所以redis不会在后台运行,这时要测试,我们需要重新开一个终端。修改为yes则为后台运行redis。另外配置文件中规定了pid文件,log文件和数据文件的地址,如果有需要先修改,默认log信息定向到stdout.

下面是redis.conf的主要配置参数的意义:

  • daemonize:是否以后台daemon方式运行
  • pidfile:pid文件位置
  • port:监听的端口号
  • timeout:请求超时时间
  • loglevel:log信息级别
  • logfile:log文件位置
  • databases:开启数据库的数量
  • save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
  • rdbcompression:是否使用压缩
  • dbfilename:数据快照文件名(只是文件名,不包括目录)
  • dir:数据快照的保存目录(这个是目录)
  • appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
  • appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)


这时你可以打开一个终端进行测试了,配置文件中默认的监听端口是6379
我们可以开启一个Redis客户端进行测试

[root@SNDA-192-168-1-114 ~]# redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected> exit
[root@SNDA-192-168-1-114 ~]# redis-server /etc/redis.conf
[root@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

 

2. 获取某个key的类型
redis> type mylist
list

 

3. 匹配所有符合模式的key,*代表所有

redis> keys *
1) "name"
2) "mylist"

 

4. 随机返回一个key
redis> randomkey
"mylist"

 

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)

 

链接

Redis 官网

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics