☆☆☆☆☆☆ Redis 客户端操做 ☆☆☆☆☆☆☆html
一、Linux 开机后启动Redis的服务端git
[root@JSH-01]# cd /usr/local/redis/src/github
[root@JSH-01 src]# redis-server ../redis.conf redis
二、进入 Redis 客户端 数据库
[root@JSH-01]# cd /usr/local/redis/src/memcached
[root@JSH-01 src]# redis-cliui
127.0.0.1:6379> keys *
1) "size"
2) "name"
3) "uuu"
4) "name1"
5) "Name"
6) "age"
7) "adress"
8) "abc"
9) "list1"
10) "time"
127.0.0.1:6379> get uuu
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> get size
"(tuple)"spa
三、Redis 默认有 16 个库,库名分别是0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15server
127.0.0.1:6379> select 1 #切换为database 1
OK
127.0.0.1:6379[1]> select 0 #切换为database 0
OK
127.0.0.1:6379> set qw1 asdfgh #设定 key名为 qw1 的值为 asdfgh
OK
127.0.0.1:6379> get qw1 #获取 key名为 qw1 的值
"asdfgh"
127.0.0.1:6379> select 5 #切换为database 5
OK
127.0.0.1:6379[5]> get qw1 #获取 key名为 qw1 的值
(nil) #由于 key名为 qw1 对应的数据不存在该database库,故而返回nilhtm
127.0.0.1:6379[5]> select 0
OK
127.0.0.1:6379> keys *
1) "size"
2) "name"
3) "uuu"
4) "name1"
5) "Name"
6) "age"
7) "adress"
8) "abc"
9) "qw1"
10) "list1"
11) "time"
127.0.0.1:6379> del size # 删除库0中 keyname为 size 的数据
(integer) 1
127.0.0.1:6379> del name
(integer) 1
……
127.0.0.1:6379> keys *
(empty list or set) #代表库中的 key-value 都被删除了
127.0.0.1:6379> lpush aaa 1 2 3 4 #从左插入多个字符到列表中
(integer) 4
127.0.0.1:6379> set abc home #设定 key名为 abc 对应的value 为 home
OK
127.0.0.1:6379> type aaa #查看 key名为 aaa 对应的 value 的数据类型
list
127.0.0.1:6379> type abc #查看 key名为 abc 对应的 value 的数据类型
string
127.0.0.1:6379> sadd myset a b c #设定set类型 的名为mset 值为a b c
(integer) 3
127.0.0.1:6379> type myset
set
127.0.0.1:6379> zadd myzset 5 6 7 8 9 10 #设定zset类型 的名为myzset 值为5 6 7 8 9 10
(integer) 3
127.0.0.1:6379> type myzset
zset
127.0.0.1:6379> hset myhash key1 value1 #设定hash类型 的名为key1 值为value1
(integer) 1
127.0.0.1:6379> type myhash
hash
☆☆☆☆☆☆ Redis 总结 ☆☆☆☆☆☆☆
1、Redis 的字符串string操做
set 命令用于设置给定 key 的值。若是 key 已经存储其余值, SET 就覆写旧值,且无视类型。
mset 命令用于同时设置一个或多个 key-value 对。
Get 命令用于获取指定 key 的值。若是 key 不存在,返回 None 。若是key 储存的值不是字符串类型,返回一个错误。
Mget 命令返回全部(一个或多个)给定 key 的值。 若是给定的 key 里面,有某个 key 不存在,那么这个 key 返回 None
即:set(keyname,value) get(keyname)
mset(keyname1-value1,keyname2=value2) ——括号()中的内容为 dic 类型
mget(keyname1,keyname2,keyname3,keyname4) ——括号()中的内容为 tuple 类型
拓展参考 http://www.cnblogs.com/xuchunlin/p/7062065.html
2、Redis 的列表 list 操做
Redis中存储list类型的数据是在内存中,一个name对应一个list
一、将一个或多个值插入到列表头部,即左边添加 lpush(name,value)
执行lpush命令后,列表的长度会发生变化。若是 key 不存在,一个空列表会被建立并执行 LPUSH 操做。
二、将一个或多个值插入到列表尾部,即右边添加 rpush(name,value)
执行rpush命令后,列表的长度会发生变化。若是 key 不存在,一个空列表会被建立并执行 RPUSH 操做。
三、插入linster(name,where,refvalue,value)
四、左边删除 lpop(keyname)
五、经过切片取list的值 lrange(name,start,end)
六、修改list中的某个值 lset(name, index, value)
七、删除指定的值 lrem(name, value, num) num默认为0, 删除全部,num=2 从左往右删除2个元素,num=-1从右往左删除两个元素
参考连接 http://www.cnblogs.com/xuchunlin/p/7067154.html
3、Redis 的 集合set 操做
一、增长 sadd(name, values)
二、获取 scard(name)
三、删除 spop(name) s.srem(name, value)
四、并集 sunion(keys) 例如:suniion("a", "b", "c")
五、交集 sinter(key)
4、Redis 的 HASH 操做
一、获取key的详细内容 hgetall(name)
二、设置单个元素 hset(name, key, value)
三、设置多个元素 hmset(name, {"key": "value"})
四、获取单个元素 hget(name, key)
五、获取多个元素 hmget(name, keys)
六、获取多有的key hkeys(name)
七、获取多有的value hvals(name)
八、判断key是否存在 hexists(name, key)
九、删除key hdel(name, keys)
十、获取长度 hlen(name)
5、Redis 的其余经常使用操做(适用于全部数据类型)
一、r.keys() 查看全部的key
二、r.delete(names) 删除keys
三、r.exists(name) 判断是否存在
四、r.rename(src, dst) 新替旧
五、r.expire(name, time) 设置超时时间
六、r.type(name) 查看name属于哪一种redis数据类型
七、r.move(name, db) 把name从原理的db移动到db库下面
八、r.flushall() 删除全部key
6、NOSQL 之—— memcached 数据库
一、在 Linux 上安装 memcached
[root@JSH-01]# cd /usr/local/src/
[root@JSH-01 src]# wget http://memcached.org/latest
[root@JSH-01 src]# tar -zxvf latest
[root@JSH-01 src]# cd memcached-1.5.7/
[root@JSH-01 memcached-1.5.7]# ./configure
报错 checking for libevent directory... configure: error: libevent is required.
[root@JSH-01 memcached-1.5.7]# cd ..
[root@JSH-01 src]# wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz