redis使用—-数据类型和操作命令

最简单的就是key<–>value, 就是每条数据都是一个键名一个键值,如下面的操作

在编译之后在源代码目录种就可以启动redis

helight@zhwen:/data/opencode/redis/redis-2416/src$ ./redis-server

另外在这个源代码目录下还有一个集成客户端:和mysql命令一样启动后就可以登录redis进行命令操作了。

helight@zhwen:/data/opencode/redis/redis-2416/src$ ./redis-cli
redis 127.0.0.1:6379> get foo
“\”werwer\””
redis 127.0.0.1:6379>

telnet也可以操作

helight@zhwen:/data/opencode/redis/redis-2416/src$ telnet 127.0.0.1 6379
Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is ‘^]’.
set foo “werwer”
+OK
get foo
$8
“werwer”
quit
+OK
Connection closed by foreign host.
helight@zhwen:/data/opencode/redis/redis-2416/src$

在redis的数据类型种我们一般使用这样几种:Strings、Lists、Hashs、Sets,Sorted sets

1.strings类型是最简单的,就是一个key对应一个value,value可以是任意类型的值

2.list的操作是这样的:可以从左面插入list,也可以从右面插入list,读取也是一样的。

redis 127.0.0.1:6379> rpush xlist 345345
(integer) 1
redis 127.0.0.1:6379> rpush xlist 34sdf
(integer) 2
redis 127.0.0.1:6379> rpush xlist 34sd234
(integer) 3
redis 127.0.0.1:6379> LRANGE xlist 0 4 //读取0~4的所有元素
1) “345345”
2) “34sdf”
3) “34sd234”
redis 127.0.0.1:6379> rpop xlist
“34sd234”
redis 127.0.0.1:6379> lpop xlist
“345345”
redis 127.0.0.1:6379> lpop xlist
“34sdf”
redis 127.0.0.1:6379>

3.Hashes类型,hashes和其它不一样的地方是是它有3个字段,key field value,所以在写入内容的控制上就多了一种选择,我感觉这个是非常使用的一种数据结构。

redis 127.0.0.1:6379> hset xlog xlog “asdf;asdfk;sdkf”
(integer) 1
redis 127.0.0.1:6379> hset xlog xlog2 “asdf;asdfk;sdkf”
(integer) 1
redis 127.0.0.1:6379> hset xlog xlog2 “as2343423423” //file重复之后,值会被覆盖掉
(integer) 0
redis 127.0.0.1:6379> hgetall xlog //获取所有field和value
1) “xlog”
2) “asdf;asdfk;sdkf”
3) “xlog2”
4) “as2343423423”
redis 127.0.0.1:6379> hget xlog xlog  //获取单个field的value值
“asdf;asdfk;sdkf”
redis 127.0.0.1:6379> hget xlog xlog2
“as2343423423”
redis 127.0.0.1:6379> hexists xlog xlog2 //判断是否存在,存在返回1
(integer) 1
redis 127.0.0.1:6379> hexists xlog xlog3 //不存在返回0

(integer) 0
redis 127.0.0.1:6379> hkeys xlog //获取其中的keys
1) “xlog”
2) “xlog2”
redis 127.0.0.1:6379> hlen xlog //获取数据条数
(integer) 2
redis 127.0.0.1:6379> hmset xlog xlog3 “tewta” xlog4 “asdfasdf” //添加多个field value
OK
redis 127.0.0.1:6379> hgetall xlog
1) “xlog”
2) “asdf;asdfk;sdkf”
3) “xlog2”
4) “as2343423423”
5) “xlog3”
6) “tewta”
7) “xlog4”
8) “asdfasdf”
redis 127.0.0.1:6379> hmget xlog xlog3 xlog4 //获取多个field的value
1) “tewta”
2) “asdfasdf”


4.Sets类型,sets就是key的集合体,可以建多个key放到这里面,进行管理。在做存在性判断时候比较有用,它的查找时间为 O(1)的。

redis 127.0.0.1:6379> sadd xtest “asdsdf”
(integer) 1
redis 127.0.0.1:6379> sadd xtest “234”
(integer) 1
redis 127.0.0.1:6379> sadd xtest “4343”
(integer) 1
redis 127.0.0.1:6379> smembers xtest //列出所有元素
1) “234”
2) “asdsdf”
3) “4343”
redis 127.0.0.1:6379> sismember xtest 234 //判断元素是否存在
(integer) 1
redis 127.0.0.1:6379> sismember xtest 23423
(integer) 0
redis 127.0.0.1:6379>