key-value 数据库redis:二、初步使用
安装完redis后,在“终端”输入命令./redis-server 启动数据库。数据库启动成功后,会定时记录连接读写情况
启动完数据库后,打开另一个“终端” 直接输入命令,
$./redis-cli set mykey myvalue1
此命令是向数据库增加一条记录,其key值为mykey,value值为myvalue1
增加完后,获取其增加的记录,命令:
$./redis-cli get mykey
上述命令只是往key增加一个value,即一条记录,在现实业务中,这样的情况不太常出现,往往要向数据库的一个key新增多个value值,则可以如下命令:
$./redis-cli lpush list1 value1
$./redis-cli lpush list1 value2
$./redis-cli lpush list1 value3
$./redis-cli lpush list1 value4
$./redis-cli lpush list1 value2
$./redis-cli lpush list1 value3
$./redis-cli lpush list1 value4
增加成功后,都会呈示"ok"
增加完成后,获取其数据, 命令:
./redis-cli lrange list1 0-1
将会将list中的所有value值呈示出来,
以上是以命令的方式的基本操作,以下代码为以java方式操作的,
使用java进行数据库操作,首先要获得jdbc驱动,redis的jdbc驱动可从如下网址获得:
http://code.google.com/p/jdbc-redis/
其使用方式与其他关系数据库,如mysql,oracle,mssql的使用方式类似,
如下为java的代码:
代码
package com.Redis.Demo;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RedisDemo {
private static Connection conn = null;
private static Statement stm = null;
private static ResultSet rs = null;
/**
* @param args
* @throws SQLException
*/
public static void main(String[] args) throws SQLException {
init();
oneKey();
manyKey();
}
/*
* 初始化
*/
private static void init() {
try {
// 加载redis jdbc驱动
Class.forName("br.com.svvs.jdbc.redis.RedisDriver");
// 连接
conn = DriverManager.getConnection("jdbc:redis://192.168.1.117");
stm = conn.createStatement();
} catch (ClassNotFoundException e) {
System.out.println(e.toString());
} catch (SQLException e) {
System.out.println(e.toString());
}
}
/*
* 关闭stm,conn
*/
private static void close() {
try {
// rs.close();
stm.close();
conn.close();
} catch (SQLException e) {
System.out.println(e.toString());
}
}
/*
* 一个键值的操作
*
*/
private static void oneKey() throws SQLException {
String sql = "set my_first_key myfirstvalue";
stm.execute(sql);
stm.execute("get my_first_key");
ResultSet rs = stm.getResultSet();
while (rs.next()) {
System.out.println(rs.getString("my_first_key"));
}
close();
}
/*
* 一个key对多个value操作
*/
private static void manyKey() throws SQLException {
stm.execute("lpush mylist value1");
stm.execute("lpush mylist value2");
stm.execute("lpush mylist value3");
stm.execute("lrange mylist 0 -1");
ResultSet rs=stm.getResultSet();
while(rs.next()){
System.out.println(rs.getString("mylist"));
}
}
}
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RedisDemo {
private static Connection conn = null;
private static Statement stm = null;
private static ResultSet rs = null;
/**
* @param args
* @throws SQLException
*/
public static void main(String[] args) throws SQLException {
init();
oneKey();
manyKey();
}
/*
* 初始化
*/
private static void init() {
try {
// 加载redis jdbc驱动
Class.forName("br.com.svvs.jdbc.redis.RedisDriver");
// 连接
conn = DriverManager.getConnection("jdbc:redis://192.168.1.117");
stm = conn.createStatement();
} catch (ClassNotFoundException e) {
System.out.println(e.toString());
} catch (SQLException e) {
System.out.println(e.toString());
}
}
/*
* 关闭stm,conn
*/
private static void close() {
try {
// rs.close();
stm.close();
conn.close();
} catch (SQLException e) {
System.out.println(e.toString());
}
}
/*
* 一个键值的操作
*
*/
private static void oneKey() throws SQLException {
String sql = "set my_first_key myfirstvalue";
stm.execute(sql);
stm.execute("get my_first_key");
ResultSet rs = stm.getResultSet();
while (rs.next()) {
System.out.println(rs.getString("my_first_key"));
}
close();
}
/*
* 一个key对多个value操作
*/
private static void manyKey() throws SQLException {
stm.execute("lpush mylist value1");
stm.execute("lpush mylist value2");
stm.execute("lpush mylist value3");
stm.execute("lrange mylist 0 -1");
ResultSet rs=stm.getResultSet();
while(rs.next()){
System.out.println(rs.getString("mylist"));
}
}
}