redis

redis01�ϲ�����

1.redis�İ�װ����

���裺

mkdir -p  /home/oldboy/tools
mkdir -p /application
 cd /home/oldboy/tools
wget  -q http://download.redis.io/releases/redis-2.8.9.tar.gz
tar  xf redis-2.8.9.tar.gz
cd redis-2.8.9
make
make PREFIX=/application/redis-2.8.9  install
ln -s  /application/redis-2.8.9/  /application/redis

�ɹ��ı�־��

[root@redis01 redis-2.8.9]# tree  /application/redis/bin/
/application/redis/bin/
������ redis-benchmark
������ redis-check-aof
������ redis-check-dump
������ redis-cli
������ redis-server
0 directories, 5 files
[root@redis01 redis-2.8.9]#

2.��װ�������˵��

redis-server :redis������daemon�����ij���
redis-cli��redis�����пͻ��˲������ߡ�
redis-benchmark��redis���ܶ�д���Թ��ߣ�����Redis�����ϵͳ�����µĶ�д����
redis-check-aof���Ը�����־appendonly.aof��飬�Ƿ���ã�������mysql  binlog����
redis-check-dump�����ڱ�����ݿ�rdb�ļ��ļ��

3.������redis

�����û�������

echo 'PATH=/application/redis/bin/:$PATH'>>/etc/profile
source /etc/profile
which  redis-server
/application/redis/bin/redis-server

��ָ��redis�����������ļ�

mkdir   -p  /application/redis/conf
cd  /home/oldboy/tools/redis-2.8.9/
cp redis.conf   /application/redis/conf/

�ۺ�̨����redis

redis-server  /application/redis/conf/redis.conf &
sysctl vm.overcommit_memory=1
vim  /etc/sysctl.conf      #����������һ��
vm.overcommit_memory=1
sysctl  -p  /etc/sysctl.conf   #������Ч

��vm.overcommit_memory����˵��

Ĭ��ֵ�� 0
����ں��ĵ����ò������ֵ���ֱ��ǣ�
0�����û��ռ��������ڴ�ʱ���ں˳��Թ����ʣ��Ŀ����ڴ�
1���������������Ϊ1��ʱ���ں����?��ʹ���ڴ�ֱ������Ϊֹ����Ҫ���ڿ�ѧ����
2�������ֵ����Ϊ2ʱ���ں˻�ʹ��һ����������ʹ���ڴ���㷨��swap+50%��RAMֵ��50%����������overcommit_ratio������

4.redis�Ŀ�����ر�

redis-cli   shutdown save  #��ر�
redis-server  /application/redis/conf/redis.conf &  #����

5.ͨ��ͻ��˲���redis

[root@redis01 ~]# redis-cli
127.0.0.1:6379>
127.0.0.1:6379> set id 10
OK
127.0.0.1:6379> get id
"10"
127.0.0.1:6379> del  id 
(integer) 1
127.0.0.1:6379> get id 
(nil)
127.0.0.1:6379> exists  id   #0�����ڱ�ʾkey
(integer) 0
127.0.0.1:6379> exists  id   #1������key
(integer) 1
127.0.0.1:6379> set  user001  xiaoming  
OK
127.0.0.1:6379> set  user002  dalong 
OK
127.0.0.1:6379> set user003  lili
OK
127.0.0.1:6379> keys *
1) "user003"
2) "user002"
3) "user001"
127.0.0.1:6379>

127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> keys *
1) "user003"
2) "user002"
3) "user001"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
127.0.0.1:6379[1]>
Զ�����ӣ�
�ٰ�װ��redis
[root@redis01 ~]# redis-cli   -h 10.0.0.7 -p 6379
10.0.0.7:6379>
[root@redis01 ~]# redis-cli   -h 10.0.0.7 -p 6379  set  userq xiaomlil   OK
[root@redis01 ~]# redis-cli   -h 10.0.0.7 -p 6379  get  userq
"xiaomlil"
[root@redis01 ~]#
��û�а�װredis
[root@redis02 ~]# telnet   10.0.0.7  6379       #��һ̨û�а�װredis�ķ�����

6.help��ʹ��

10.0.0.7:6379> help set
  SET key value [EX seconds] [PX milliseconds] [NX|XX]
  summary: Set the string value of a key
  since: 1.0.0
  group: string
10.0.0.7:6379> help  @string
10.0.0.7:6379> help     #��tab����Ҳ�ǿ��Ե�������֪����

7.redis��ȫ

a.Ϊredis�ͻ��������ⲿ�������룬redis�ںõķ������£�ÿ����Խ���1.5w�δ��빥��
vim  /application/redis/conf/redis.conf
requirepass  oldboy                  #340����ӣ�����ģ��д��д
���������Ժ�����
redis-cli  shutdown
redis-server  /application/redis/conf/redis.conf  &
[root@redis01 ~]# redis-cli
127.0.0.1:6379> set key  value
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth  oldboy           #��һ����֤�ķ�ʽ
OK
127.0.0.1:6379> set key  value
OK
127.0.0.1:6379>
[root@redis01 ~]# redis-cli -a  oldboy   #�ڶ�����֤�ķ�ʽ
127.0.0.1:6379> set  k  v
OK
127.0.0.1:6379>
b.renameҲ�ǰ�������ĸ�ʽ���ã��������ļ�������rename��������
vim  /application/redis/conf/redis.conf 
rename-command get ""        #354�����
redis-cli  -a  oldboy shutdown    #��֤����ر�-a  auth����˼
redis-server  /application/redis/conf/redis.conf  &
127.0.0.1:6379> get  key
(error) ERR unknown command 'get'   #���Կ�����������

8.Ϊphp��װredis�ͻ�����չ

Ϊphp��װredis�ͻ�����չ

��飺�����������мܹ�web01�ϲ��ԣ�IPΪ10.0.0.8������Ϊ������ 9��˵��Ϊ��php��װredi�ͻ������
���ԣ�
[root@web01 ~]# cd   /home/oldboy/tools/
[root@web01 tools]# wget https://github.com/nicolasff/phpredis/archive/master.zip
[root@web01 tools]# unzip master.zip
[root@web01 tools]# cd phpredis-master/
[root@web01 phpredis-master]# /application/php/bin/phpize
[root@web01 phpredis-master]# ./configure -with-php-config=/application/php/bin/php-config
[root@web01 phpredis-master]# make && make install
echo "extension = redis.so">>/application/php/lib/php.ini
vim   /application/php/lib/php.ini  ��extension�޸ij�
extension_dir = "/application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/"


9���ԣ�˵�������β����������мܹ�web01�ϲ��ԣ���Ϊweb01�ͱ��ε�redis01��ͻ�����Ұ�redis02�ر���

mkdir -p  /data/htdocs/www 
cd /data/htdocs/www
[root@web01 www]# cat redis.php
<?php
    $redis = new Redis();
    $redis ->connect("10.0.0.7",6379);
    $redis ->auth("oldboy");
    $redis ->set('name','oldboy');
    $var =$redis ->get('name');
    echo $var;
?>
[root@web01 www]# /application/php/bin/php  redis.php
oldboy
[root@web01 www]#

10.��python��װredis��redis01�ϲ��ԣ�

�����Ȱ�װredis��֧��python��ģ�飬ֻ�а�װ���ģ��python���ܲ���redis

cd /home/oldboy/tools/
# wget https://pypi.python.org/packages/source/r/redis/redis-2.10.1.tar.gz
 tar xf redis-2.10.1.tar.gz
 cd redis-2.10.1
 python  setup.py   install

��python����redis��Ҳ���԰��������py�ļ��У�

[root@redis01 ~]# python
Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import  redis
>>> r = redis.Redis(host='10.0.0.7',port=6379,password='oldboy',db=0)
>>> r.set("name","sanlang")
True
>>> r.get ('name')
'sanlang'
>>> r.dbsize()
8L
>>> r.keys()
['a', 'name', 'key', 'user001', 'user002', 'userq', 'user003', 'k']

�۷���һ�������ļ���

[root@redis01 ~]# cat rp.py
import  redis
r = redis.Redis(host='10.0.0.7',port=6379,password='oldboy',db=0)
r.set("name","dalong002")
print r.get ('name')
[root@redis01 ~]#
[root@redis01 ~]# python  rp.py
dalong002

�ܴ˴����еĴ����Ŵ�

[root@li380-133 ~]# python
 Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45)
 [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import redis
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "/root/redis.py", line 4, in <module>
 AttributeError: 'module' object has no attribute 'Redis'
�ܹ�ٶȴ����͹ȸ���������޹�����������ҵ����⡣
 �Ұ��ļ�����Ϊredis.py����һ�����к����redis.pyc���Ժ����redis��import redis��������ֱ�ӵ���redis
����Ұ�redis.pycɾ���дredis.py��ƣ�һ����

11.���redis�������ļ�

1. RedisĬ�ϲ������ػ���̵ķ�ʽ���У�����ͨ����������޸ģ�ʹ��yes�����ػ����
    daemonize no
2. ��Redis���ػ���̷�ʽ����ʱ��RedisĬ�ϻ��pidд��/var/run/redis.pid�ļ�������ͨ��pidfileָ��
    pidfile /var/run/redis.pid
3. ָ��Redis����˿ڣ�Ĭ�϶˿�Ϊ6379���������Լ���һƪ�����н�����Ϊʲôѡ��6379��ΪĬ�϶˿ڣ���Ϊ6379���ֻ����MERZ��Ӧ�ĺ��룬��MERZȡ��������ŮAlessia Merz������
    port 6379
4. �������ַ
    bind 127.0.0.1
5.���ͻ������ö೤ʱ���ر����ӣ����ָ��Ϊ0����ʾ�رոù���
    timeout 300
6. ָ����־��¼����Redis�ܹ�֧���ĸ�����debug��verbose��notice��warning��Ĭ��Ϊverbose
    loglevel verbose
7. ��־��¼��ʽ��Ĭ��Ϊ��׼������������RedisΪ�ػ���̷�ʽ���У�������������Ϊ��־��¼��ʽΪ��׼���������־���ᷢ�͸�/dev/null
    logfile stdout
8. ������ݿ��������Ĭ����ݿ�Ϊ0������ʹ��SELECT <dbid>������������ָ����ݿ�id
    databases 16
9. ָ���ڶ೤ʱ���ڣ��ж��ٴθ��²������ͽ����ͬ��������ļ������Զ���������
    save <seconds> <changes>
    RedisĬ�������ļ����ṩ�����������
    save 900 1
    save 300 10
    save 60 10000
    �ֱ��ʾ900�루15���ӣ�����1����ģ�300�루5���ӣ�����10������Լ�60������10000����ġ�
10. ָ���洢��������ݿ�ʱ�Ƿ�ѹ����ݣ�Ĭ��Ϊyes��Redis����LZFѹ�������Ϊ�˽�ʡCPUʱ�䣬���Թرո�ѡ����ᵼ����ݿ��ļ���ľ޴� 
    rdbcompression yes
11. ָ��������ݿ��ļ���Ĭ��ֵΪdump.rdb
    dbfilename dump.rdb
12. ָ��������ݿ���Ŀ¼
    dir ./
13. ���õ�����Ϊslav����ʱ������master�����IP��ַ���˿ڣ���Redis����ʱ������Զ���master�������ͬ��
    slaveof <masterip> <masterport>
14. ��master�������������뱣��ʱ��slav��������master������
    masterauth <master-password>
15. ����Redis�������룬����������������룬�ͻ���������Redisʱ��Ҫͨ��AUTH <password>�����ṩ���룬Ĭ�Ϲر�
    requirepass foobared
16. ����ͬһʱ�����ͻ���������Ĭ�������ƣ�Redis����ͬʱ�Ŀͻ���������ΪRedis��̿��Դ�����ļ���������������� maxclients 0����ʾ�������ơ����ͻ��������������ʱ��Redis��ر��µ����Ӳ���ͻ��˷���max number of clients reached������Ϣ
    maxclients 128 
17. ָ��Redis����ڴ����ƣ�Redis������ʱ�����ݼ��ص��ڴ��У��ﵽ����ڴ��Redis���ȳ�������ѵ��ڻ����ڵ�Key�����˷����������Ȼ��������ڴ����ã����޷��ٽ���д�����������Ȼ���Խ��ж�ȡ������Redis�µ�vm���ƣ����Key����ڴ棬Value������swap��
    maxmemory <bytes>
18. ָ���Ƿ���ÿ�θ��²����������־��¼��Redis��Ĭ����������첽�İ����д����̣�����������ܻ��ڶϵ�ʱ����һ��ʱ���ڵ���ݶ�ʧ����Ϊ redis����ͬ������ļ��ǰ�����save������ͬ���ģ������е���ݻ���һ��ʱ����ֻ�������ڴ��С�Ĭ��Ϊno
    appendonly no
19. ָ��������־�ļ���Ĭ��Ϊappendonly.aof
    appendfilename appendonly.aof   #����������ʱ�������־���أ���ֹ����ݣ�Ĭ���������д������棬����Ļ���д�뱾�ص���ݿ�dump.rdb��
20. ָ��������־����������3����ѡֵ��
    no����ʾ�Ȳ���ϵͳ������ݻ���ͬ�������̣��죩
    always����ʾÿ�θ��²������ֶ�����fsync()�����д�����̣���ȫ��
    everysec����ʾÿ��ͬ��һ�Σ����ԣ�Ĭ��ֵ��
    appendfsync everysec
21. ָ���Ƿ����������ڴ���ƣ�Ĭ��ֵΪno���Ľ���һ�£�VM���ƽ���ݷ�ҳ��ţ���Redis�����������ٵ�ҳ�������swap�������ϣ����ʶ��ҳ���ɴ����Զ��������ڴ��У��ں���������һ���ϸ����Redis��VM���ƣ�
     vm-enabled no
22. �����ڴ��ļ�·����Ĭ��ֵΪ/tmp/redis.swap�����ɶ��Redisʵ����
     vm-swap-file /tmp/redis.swap
23. �����д���vm-max-memory����ݴ��������ڴ�,����vm-max-memory���ö�С,����������ݶ����ڴ�洢��(Redis��������ݾ���keys),Ҳ����˵,��vm-max-memory����Ϊ0��ʱ��,��ʵ������value�������ڴ��̡�Ĭ��ֵΪ0
     vm-max-memory 0
24. Redis swap�ļ��ֳ��˺ܶ��page��һ��������Ա����ڶ��page���棬��һ��page�ϲ��ܱ���������?vm-page-size��Ҫ��ݴ洢����ݴ�С���趨�ģ����߽������洢�ܶ�С����page��С�������Ϊ32����64bytes�����洢�ܴ����������ʹ�ø���page�����ȷ������ʹ��Ĭ��ֵ
  vm-page-size 32
25. ����swap�ļ��е�page����������ҳ�?һ�ֱ�ʾҳ����л�ʹ�õ�bitmap�����ڷ����ڴ��еģ����ڴ�����ÿ8��pages�����1byte���ڴ档
     vm-pages 134217728
26. ���÷���swap�ļ����߳���,��ò�Ҫ��������ĺ���,�������Ϊ0,��ô���ж�swap�ļ��IJ������Ǵ��еģ����ܻ���ɱȽϳ�ʱ����ӳ١�Ĭ��ֵΪ4
     vm-max-threads 4
27. ��������ͻ���Ӧ��ʱ���Ƿ�ѽ�С�İ�ϲ�Ϊһ�����ͣ�Ĭ��Ϊ���� 
    glueoutputbuf ye
28. ָ���ڳ���һ����������������Ԫ�س���ijһ�ٽ�ֵʱ������һ������Ĺ�ϣ�㷨
    hash-max-zipmap-entries 64
    hash-max-zipmap-value 512
29. ָ���Ƿ����ù�ϣ��Ĭ��Ϊ�����������ڽ���Redis�Ĺ�ϣ�㷨ʱ������ܣ�
    activerehashing yes
30. ָ��������������ļ���������ͬһ�����϶��Redisʵ��֮��ʹ��ͬһ�������ļ�����ͬʱ����ʵ����ӵ���Լ����ض������ļ�
    include /path/to/local.conf

12.redis���������

string
hash
list
set
sorted set

��string����

127.0.0.1:6379> strlen  key
(integer) 5
127.0.0.1:6379> substr key  0 2
"val"
127.0.0.1:6379> mset  name  xiaoming  age 27
OK
127.0.0.1:6379> mget name  age
1) "xiaoming"
2) "27"
127.0.0.1:6379>

��list����

127.0.0.1:6379> lpush student  xiaoli
(integer) 1
127.0.0.1:6379> lpush student  dalong
(integer) 2
127.0.0.1:6379> lpush student  xiaoli
(integer) 3
127.0.0.1:6379> llen student
(integer) 3
127.0.0.1:6379> lrange student  0 1
1) "xiaoli"
2) "dalong"
127.0.0.1:6379>
127.0.0.1:6379> lpop  student   #��������ɾ��
"xiaoli"
127.0.0.1:6379> lpop  student
"dalong"
127.0.0.1:6379>  lrange student  0 1
1) "xiaoli"
2) "1"
127.0.0.1:6379>
127.0.0.1:6379> lrem  student 1 xiaoli
(integer) 1
127.0.0.1:6379> lrem  student 1 xiaoli
(integer) 1
127.0.0.1:6379> linsert student  before "liming"  "sanlang"
(integer) 4
127.0.0.1:6379> lrange  student 0 3
1) "dalongg"
2) "sanlang"
3) "liming"
4) "xiaoli"
127.0.0.1:6379>

��sets����

127.0.0.1:6379> sadd  user  lada
(integer) 1
127.0.0.1:6379> sadd  user  laoer  laosan
(integer) 2
127.0.0.1:6379> smembers  user
1) "laosan"
2) "laoer"
3) "lada"
127.0.0.1:6379> sismember  user   lada    #�鿴�Ƿ���ڴ���
(integer) 1
127.0.0.1:6379> sismember  user   xiaolili  #������
(integer) 0
127.0.0.1:6379>

��sorted  sets

127.0.0.1:6379> zadd  days  1  zhouyi
(integer) 1
127.0.0.1:6379> zadd  days  2  zhouer
(integer) 1
127.0.0.1:6379> zadd  days  3  zhousan
(integer) 1
127.0.0.1:6379> zrange days 0 1
1) "zhouyi"
2) "zhouer"
127.0.0.1:6379> zrange days 0 2
1) "zhouyi"
2) "zhouer"
3) "zhousan"
127.0.0.1:6379> zscore days  zhousan   #�鿴zhousan�ŵڼ�
"3"
127.0.0.1:6379>

��hash�������

redis�ܹ��Դ洢key�Զ�����Ե����

127.0.0.1:6379> hset  test  name  sanlang
(integer) 1
127.0.0.1:6379> hset  test  age 18
(integer) 1
127.0.0.1:6379> hset  test  sex  male
(integer) 1
127.0.0.1:6379> hvals test
1) "sanlang"
2) "18"
3) "male"
127.0.0.1:6379>

13.redis�Ķ�ʵ��

vim  /application/redis/conf/redis.conf  
dir /application/data/
 mkdir -p /application/data/
redis-cli   -a  oldboy  shutdown
redis-server  /application/redis/conf/redis.conf &
[root@redis01 data]# redis-cli  -a oldboy 
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> save
[29471] 27 Jun 10:06:04.475 * DB saved on disk
OK
127.0.0.1:6379> quit
[root@redis01 ~]# ll  /application/data
������ 4
-rw-r--r-- 1 root root 36 6��  27 10:06 dump.rdb   #����˱�����ݿ��ļ�
mkdir -p  /data/6380/data -p
mkdir -p  /data/6381/data -p
cp  /application/redis/conf/redis.conf  /data/6380/
cp  /application/redis/conf/redis.conf  /data/6381/
cd  /data/6380
vim redis.conf  
�޸����²���
port 6380
pidfile /data/6380/redis.pid
dir /data/6380/
appendonly yes
����redis
 redis-server   /data/6380/redis.conf &
[root@redis01 6380]# lsof -i:6380
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
redis-ser 29527 root    4u  IPv6  38476      0t0  TCP *:6380 (LISTEN)
redis-ser 29527 root    5u  IPv4  38478      0t0  TCP *:6380 (LISTEN)
[root@redis01 6380]# redis-cli -p 6380    #��ʵ���¼ָ���˿�


���ij��� ��ש�Ҳ����� ���ͣ�л��ת�أ�

你可能感兴趣的:(redis)